diff --git a/__init__.py b/__init__.py index 87f7473..1bdab8f 100644 --- a/__init__.py +++ b/__init__.py @@ -5,17 +5,18 @@ import folder_paths import shutil import os import sys -import subprocess # don't remove this -from urllib.parse import urlparse +import subprocess import subprocess import os import json -from .service.model_manager.model_installer import download_url_with_wget -from .service.model_manager.model_list import get_model_list from .service.media_service import * from .service.file_sync_service import * from .service.db_service import get_my_workflows_dir from .service.node_service import * +try: + from send2trash import send2trash +except ImportError: + send2trash = None WEB_DIRECTORY = "entry" NODE_CLASS_MAPPINGS = {} @@ -112,31 +113,28 @@ async def update_file(request): await asyncio.to_thread(write_json_to_file, json_str) return web.Response(text="File updated successfully") - @server.PromptServer.instance.routes.post("/workspace/delete_file") async def delete_file(request): data = await request.json() file_path = data['file_path'] - delete_empty_folder = data['deleteEmptyFolder'] - def sync_delete_file(file_path, delete_empty_folder): + def sync_delete_file(file_path): my_workflows_dir = get_my_workflows_dir() full_path = os.path.join(my_workflows_dir, file_path) if os.path.exists(full_path): - os.remove(full_path) - directory = os.path.dirname(full_path) - if delete_empty_folder and not os.listdir(directory): - # If the directory is empty, remove the directory - os.rmdir(directory) - return "File and empty directory deleted successfully" + if send2trash: + send2trash(full_path) else: - return "File deleted successfully" + os.remove(full_path) + print("❌⛔️send2trash is not available. Deleting file permanently. Please `pip install send2trash`") + + return "File deleted successfully" else: return "File not found" # Run the synchronous file operation in a separate thread - response_text = await asyncio.to_thread(sync_delete_file, file_path, delete_empty_folder) + response_text = await asyncio.to_thread(sync_delete_file, file_path) if response_text == "File not found": return web.Response(text=response_text, status=404) diff --git a/dist/workspace_web/App-Pi18TWng.js b/dist/workspace_web/App-Pi18TWng.js new file mode 100644 index 0000000..167286c --- /dev/null +++ b/dist/workspace_web/App-Pi18TWng.js @@ -0,0 +1,27 @@ +var fl=Object.defineProperty;var hl=(t,e,n)=>e in t?fl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Se=(t,e,n)=>(hl(t,typeof e!="symbol"?e+"":e,n),n);import{u as pl,a as ml,r as j,c as yl,b as et,m as Te,d as Bt,f as fe,e as ke,j as O,B as vl,g as de,h as Le,i as gl,o as tt,k as jt,l as ot,I as Ur,n as Kr,p as no,q as Oe,s as xa,t as wl,v as bl,w as _l,x as $r,y as kl,z as xl,A as El,C as Cl,D as Sl,E as os,F as Ea,G as ss,H as Ca,J as Ol,K as Il,L as Dl,P as Sa,_ as At,M as as,N as is,O as ls,Q as cs,R as us,S as ds,T as fs,U as Oa,V as Ia,W as Xn,X as Da}from"./input.js";function Pl(t){return t!=null&&typeof t=="object"&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE}function Pa(t){var e;return Pl(t)&&(e=t.ownerDocument)!=null?e:document}function jl(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var Al=jl();function Nl(t){const e=Object.assign({},t);for(let n in e)e[n]===void 0&&delete e[n];return e}function ja(t){const{theme:e}=pl(),n=ml();return j.useMemo(()=>yl(e.direction,{...n,...t}),[t,e.direction,n])}var Fl=Object.defineProperty,Rl=(t,e,n)=>e in t?Fl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,De=(t,e,n)=>(Rl(t,typeof e!="symbol"?e+"":e,n),n);function $s(t){return t.sort((e,n)=>{const r=e.compareDocumentPosition(n);if(r&Node.DOCUMENT_POSITION_FOLLOWING||r&Node.DOCUMENT_POSITION_CONTAINED_BY)return-1;if(r&Node.DOCUMENT_POSITION_PRECEDING||r&Node.DOCUMENT_POSITION_CONTAINS)return 1;if(r&Node.DOCUMENT_POSITION_DISCONNECTED||r&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)throw Error("Cannot sort the given nodes.");return 0})}var Tl=t=>typeof t=="object"&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE;function qs(t,e,n){let r=t+1;return n&&r>=e&&(r=0),r}function Hs(t,e,n){let r=t-1;return n&&r<0&&(r=e),r}var go=typeof window<"u"?j.useLayoutEffect:j.useEffect,kr=t=>t,Bl=class{constructor(){De(this,"descendants",new Map),De(this,"register",t=>{if(t!=null)return Tl(t)?this.registerNode(t):e=>{this.registerNode(e,t)}}),De(this,"unregister",t=>{this.descendants.delete(t);const e=$s(Array.from(this.descendants.keys()));this.assignIndex(e)}),De(this,"destroy",()=>{this.descendants.clear()}),De(this,"assignIndex",t=>{this.descendants.forEach(e=>{const n=t.indexOf(e.node);e.index=n,e.node.dataset.index=e.index.toString()})}),De(this,"count",()=>this.descendants.size),De(this,"enabledCount",()=>this.enabledValues().length),De(this,"values",()=>Array.from(this.descendants.values()).sort((e,n)=>e.index-n.index)),De(this,"enabledValues",()=>this.values().filter(t=>!t.disabled)),De(this,"item",t=>{if(this.count()!==0)return this.values()[t]}),De(this,"enabledItem",t=>{if(this.enabledCount()!==0)return this.enabledValues()[t]}),De(this,"first",()=>this.item(0)),De(this,"firstEnabled",()=>this.enabledItem(0)),De(this,"last",()=>this.item(this.descendants.size-1)),De(this,"lastEnabled",()=>{const t=this.enabledValues().length-1;return this.enabledItem(t)}),De(this,"indexOf",t=>{var e,n;return t&&(n=(e=this.descendants.get(t))==null?void 0:e.index)!=null?n:-1}),De(this,"enabledIndexOf",t=>t==null?-1:this.enabledValues().findIndex(e=>e.node.isSameNode(t))),De(this,"next",(t,e=!0)=>{const n=qs(t,this.count(),e);return this.item(n)}),De(this,"nextEnabled",(t,e=!0)=>{const n=this.item(t);if(!n)return;const r=this.enabledIndexOf(n.node),o=qs(r,this.enabledCount(),e);return this.enabledItem(o)}),De(this,"prev",(t,e=!0)=>{const n=Hs(t,this.count()-1,e);return this.item(n)}),De(this,"prevEnabled",(t,e=!0)=>{const n=this.item(t);if(!n)return;const r=this.enabledIndexOf(n.node),o=Hs(r,this.enabledCount()-1,e);return this.enabledItem(o)}),De(this,"registerNode",(t,e)=>{if(!t||this.descendants.has(t))return;const n=Array.from(this.descendants.keys()).concat(t),r=$s(n);e!=null&&e.disabled&&(e.disabled=!!e.disabled);const o={node:t,index:-1,...e};this.descendants.set(t,o),this.assignIndex(r)})}};function Ml(){const t=j.useRef(new Bl);return go(()=>()=>t.current.destroy()),t.current}var[zl,Aa]=et({name:"DescendantsProvider",errorMessage:"useDescendantsContext must be used within DescendantsProvider"});function Ll(t){const e=Aa(),[n,r]=j.useState(-1),o=j.useRef(null);go(()=>()=>{o.current&&e.unregister(o.current)},[]),go(()=>{if(!o.current)return;const i=Number(o.current.dataset.index);n!=i&&!Number.isNaN(i)&&r(i)});const s=kr(t?e.register(t):e.register);return{descendants:e,index:n,enabledIndex:e.enabledIndexOf(o.current),register:Te(s,o)}}function Na(){return[kr(zl),()=>kr(Aa()),()=>Ml(),o=>Ll(o)]}function Fa(t){const{value:e,defaultValue:n,onChange:r,shouldUpdate:o=(p,h)=>p!==h}=t,s=Bt(r),i=Bt(o),[a,l]=j.useState(n),u=e!==void 0,c=u?e:a,d=Bt(p=>{const b=typeof p=="function"?p(c):p;i(c,b)&&(u||l(b),s(b))},[u,s,c,i]);return[c,d]}function hs(t){return j.Children.toArray(t).filter(e=>j.isValidElement(e))}var Wl={horizontal:{"> *:first-of-type:not(:last-of-type)":{borderEndRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderStartRadius:0}},vertical:{"> *:first-of-type:not(:last-of-type)":{borderBottomRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderTopRadius:0}}},Ul={horizontal:t=>({"& > *:not(style) ~ *:not(style)":{marginStart:t}}),vertical:t=>({"& > *:not(style) ~ *:not(style)":{marginTop:t}})},Ra=fe(function(e,n){const{size:r,colorScheme:o,variant:s,className:i,spacing:a="0.5rem",isAttached:l,isDisabled:u,orientation:c="horizontal",...d}=e,p=ke("chakra-button__group",i),h=j.useMemo(()=>({size:r,colorScheme:o,variant:s,isDisabled:u}),[r,o,s,u]);let b={display:"inline-flex",...l?Wl[c]:Ul[c](a)};const f=c==="vertical";return O.jsx(vl,{value:h,children:O.jsx(de.div,{ref:n,role:"group",__css:b,className:p,"data-attached":l?"":void 0,"data-orientation":c,flexDir:f?"column":void 0,...d})})});Ra.displayName="ButtonGroup";var jn=fe((t,e)=>{const{icon:n,children:r,isRound:o,"aria-label":s,...i}=t,a=n||r,l=j.isValidElement(a)?j.cloneElement(a,{"aria-hidden":!0,focusable:!1}):null;return O.jsx(Le,{padding:"0",borderRadius:o?"full":void 0,ref:e,"aria-label":s,...i,children:l})});jn.displayName="IconButton";var[Kl,Ta]=gl("Card"),$l=fe(function(e,n){const{className:r,...o}=e,s=Ta();return O.jsx(de.div,{ref:n,className:ke("chakra-card__body",r),__css:s.body,...o})}),ql=fe(function(e,n){const{className:r,...o}=e,s=Ta();return O.jsx(de.div,{ref:n,className:ke("chakra-card__header",r),__css:s.header,...o})}),Hl=fe(function(e,n){const{className:r,children:o,direction:s="column",justify:i,align:a,...l}=tt(e),u=jt("Card",e);return O.jsx(de.div,{ref:n,className:ke("chakra-card",r),__css:{display:"flex",flexDirection:s,justifyContent:i,alignItems:a,position:"relative",minWidth:0,wordWrap:"break-word",...u.container},...l,children:O.jsx(Kl,{value:u,children:o})})}),[Vl,Ba]=et({name:"FormControlStylesContext",errorMessage:`useFormControlStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[Zl,hn]=et({strict:!1,name:"FormControlContext"});function Gl(t){const{id:e,isRequired:n,isInvalid:r,isDisabled:o,isReadOnly:s,...i}=t,a=j.useId(),l=e||`field-${a}`,u=`${l}-label`,c=`${l}-feedback`,d=`${l}-helptext`,[p,h]=j.useState(!1),[b,f]=j.useState(!1),[y,m]=j.useState(!1),w=j.useCallback((E={},N=null)=>({id:d,...E,ref:Te(N,D=>{D&&f(!0)})}),[d]),_=j.useCallback((E={},N=null)=>({...E,ref:N,"data-focus":ot(y),"data-disabled":ot(o),"data-invalid":ot(r),"data-readonly":ot(s),id:E.id!==void 0?E.id:u,htmlFor:E.htmlFor!==void 0?E.htmlFor:l}),[l,o,y,r,s,u]),k=j.useCallback((E={},N=null)=>({id:c,...E,ref:Te(N,D=>{D&&h(!0)}),"aria-live":"polite"}),[c]),x=j.useCallback((E={},N=null)=>({...E,...i,ref:N,role:"group","data-focus":ot(y),"data-disabled":ot(o),"data-invalid":ot(r),"data-readonly":ot(s)}),[i,o,y,r,s]),I=j.useCallback((E={},N=null)=>({...E,ref:N,role:"presentation","aria-hidden":!0,children:E.children||"*"}),[]);return{isRequired:!!n,isInvalid:!!r,isReadOnly:!!s,isDisabled:!!o,isFocused:!!y,onFocus:()=>m(!0),onBlur:()=>m(!1),hasFeedbackText:p,setHasFeedbackText:h,hasHelpText:b,setHasHelpText:f,id:l,labelId:u,feedbackId:c,helpTextId:d,htmlProps:i,getHelpTextProps:w,getErrorMessageProps:k,getRootProps:x,getLabelProps:_,getRequiredIndicatorProps:I}}var qr=fe(function(e,n){const r=jt("Form",e),o=tt(e),{getRootProps:s,htmlProps:i,...a}=Gl(o),l=ke("chakra-form-control",e.className);return O.jsx(Zl,{value:a,children:O.jsx(Vl,{value:r,children:O.jsx(de.div,{...s({},n),className:l,__css:r.container})})})});qr.displayName="FormControl";var Yl=fe(function(e,n){const r=hn(),o=Ba(),s=ke("chakra-form__helper-text",e.className);return O.jsx(de.div,{...r==null?void 0:r.getHelpTextProps(e,n),__css:o.helperText,className:s})});Yl.displayName="FormHelperText";var[Jl,Xl]=et({name:"FormErrorStylesContext",errorMessage:`useFormErrorStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Hr=fe((t,e)=>{const n=jt("FormError",t),r=tt(t),o=hn();return o!=null&&o.isInvalid?O.jsx(Jl,{value:n,children:O.jsx(de.div,{...o==null?void 0:o.getErrorMessageProps(r,e),className:ke("chakra-form__error-message",t.className),__css:{display:"flex",alignItems:"center",...n.text}})}):null});Hr.displayName="FormErrorMessage";var Ql=fe((t,e)=>{const n=Xl(),r=hn();if(!(r!=null&&r.isInvalid))return null;const o=ke("chakra-form__error-icon",t.className);return O.jsx(Ur,{ref:e,"aria-hidden":!0,...t,__css:n.icon,className:o,children:O.jsx("path",{fill:"currentColor",d:"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z"})})});Ql.displayName="FormErrorIcon";var Vr=fe(function(e,n){var r;const o=Kr("FormLabel",e),s=tt(e),{className:i,children:a,requiredIndicator:l=O.jsx(Ma,{}),optionalIndicator:u=null,...c}=s,d=hn(),p=(r=d==null?void 0:d.getLabelProps(c,n))!=null?r:{ref:n,...c};return O.jsxs(de.label,{...p,className:ke("chakra-form__label",s.className),__css:{display:"block",textAlign:"start",...o},children:[a,d!=null&&d.isRequired?l:u]})});Vr.displayName="FormLabel";var Ma=fe(function(e,n){const r=hn(),o=Ba();if(!(r!=null&&r.isRequired))return null;const s=ke("chakra-form__required-indicator",e.className);return O.jsx(de.span,{...r==null?void 0:r.getRequiredIndicatorProps(e,n),__css:o.requiredIndicator,className:s})});Ma.displayName="RequiredIndicator";function ec(t){const{isDisabled:e,isInvalid:n,isReadOnly:r,isRequired:o,...s}=tc(t);return{...s,disabled:e,readOnly:r,required:o,"aria-invalid":no(n),"aria-required":no(o),"aria-readonly":no(r)}}function tc(t){var e,n,r;const o=hn(),{id:s,disabled:i,readOnly:a,required:l,isRequired:u,isInvalid:c,isReadOnly:d,isDisabled:p,onFocus:h,onBlur:b,...f}=t,y=t["aria-describedby"]?[t["aria-describedby"]]:[];return o!=null&&o.hasFeedbackText&&(o!=null&&o.isInvalid)&&y.push(o.feedbackId),o!=null&&o.hasHelpText&&y.push(o.helpTextId),{...f,"aria-describedby":y.join(" ")||void 0,id:s??(o==null?void 0:o.id),isDisabled:(e=i??p)!=null?e:o==null?void 0:o.isDisabled,isReadOnly:(n=a??d)!=null?n:o==null?void 0:o.isReadOnly,isRequired:(r=l??u)!=null?r:o==null?void 0:o.isRequired,isInvalid:c??(o==null?void 0:o.isInvalid),onFocus:Oe(o==null?void 0:o.onFocus,h),onBlur:Oe(o==null?void 0:o.onBlur,b)}}function nn(t,e,n,r){const o=Bt(n);return j.useEffect(()=>{const s=typeof t=="function"?t():t??document;if(!(!n||!s))return s.addEventListener(e,o,r),()=>{s.removeEventListener(e,o,r)}},[e,t,r,o,n]),()=>{const s=typeof t=="function"?t():t??document;s==null||s.removeEventListener(e,o,r)}}function nc(t){return"current"in t}var za=()=>typeof window<"u";function rc(){var t;const e=navigator.userAgentData;return(t=e==null?void 0:e.platform)!=null?t:navigator.platform}var oc=t=>za()&&t.test(navigator.vendor),sc=t=>za()&&t.test(rc()),ac=()=>sc(/mac|iphone|ipad|ipod/i),ic=()=>ac()&&oc(/apple/i);function lc(t){const{ref:e,elements:n,enabled:r}=t,o=()=>{var s,i;return(i=(s=e.current)==null?void 0:s.ownerDocument)!=null?i:document};nn(o,"pointerdown",s=>{if(!ic()||!r)return;const i=s.target,l=(n??[e]).some(u=>{const c=nc(u)?u.current:u;return(c==null?void 0:c.contains(i))||c===i});o().activeElement!==i&&l&&(s.preventDefault(),i.focus())})}var La={exports:{}},cc="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",uc=cc,dc=uc;function Wa(){}function Ua(){}Ua.resetWarningCache=Wa;var fc=function(){function t(r,o,s,i,a,l){if(l!==dc){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}t.isRequired=t;function e(){return t}var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:Ua,resetWarningCache:Wa};return n.PropTypes=n,n};La.exports=fc();var hc=La.exports;const Ft=xa(hc);function pc(t){const e=t.ownerDocument.defaultView||window,{overflow:n,overflowX:r,overflowY:o}=e.getComputedStyle(t);return/auto|scroll|overlay|hidden/.test(n+o+r)}function mc(t){return t.localName==="html"?t:t.assignedSlot||t.parentElement||t.ownerDocument.documentElement}function Ka(t){return["html","body","#document"].includes(t.localName)?t.ownerDocument.body:wl(t)&&pc(t)?t:Ka(mc(t))}var yc=Al?j.useLayoutEffect:j.useEffect;function wo(t,e=[]){const n=j.useRef(t);return yc(()=>{n.current=t}),j.useCallback((...r)=>{var o;return(o=n.current)==null?void 0:o.call(n,...r)},e)}function vc(t){const{ref:e,handler:n,enabled:r=!0}=t,o=wo(n),i=j.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;j.useEffect(()=>{if(!r)return;const a=d=>{ro(d,e)&&(i.isPointerDown=!0)},l=d=>{if(i.ignoreEmulatedMouseEvents){i.ignoreEmulatedMouseEvents=!1;return}i.isPointerDown&&n&&ro(d,e)&&(i.isPointerDown=!1,o(d))},u=d=>{i.ignoreEmulatedMouseEvents=!0,n&&i.isPointerDown&&ro(d,e)&&(i.isPointerDown=!1,o(d))},c=Pa(e.current);return c.addEventListener("mousedown",a,!0),c.addEventListener("mouseup",l,!0),c.addEventListener("touchstart",a,!0),c.addEventListener("touchend",u,!0),()=>{c.removeEventListener("mousedown",a,!0),c.removeEventListener("mouseup",l,!0),c.removeEventListener("touchstart",a,!0),c.removeEventListener("touchend",u,!0)}},[n,e,o,i,r])}function ro(t,e){var n;const r=t.target;return r&&!Pa(r).contains(r)?!1:!((n=e.current)!=null&&n.contains(r))}function gc(t,e){const n=j.useId();return j.useMemo(()=>t||[e,n].filter(Boolean).join("-"),[t,e,n])}function wc(t,e){const n=t!==void 0;return[n,n&&typeof t<"u"?t:e]}function bc(t={}){const{onClose:e,onOpen:n,isOpen:r,id:o}=t,s=wo(n),i=wo(e),[a,l]=j.useState(t.defaultIsOpen||!1),[u,c]=wc(r,a),d=gc(o,"disclosure"),p=j.useCallback(()=>{u||l(!1),i==null||i()},[u,i]),h=j.useCallback(()=>{u||l(!0),s==null||s()},[u,s]),b=j.useCallback(()=>{(c?p:h)()},[c,h,p]);return{isOpen:!!c,onOpen:h,onClose:p,onToggle:b,isControlled:u,getButtonProps:(f={})=>({...f,"aria-expanded":c,"aria-controls":d,onClick:bl(f.onClick,b)}),getDisclosureProps:(f={})=>({...f,hidden:!c,id:d})}}var Un=fe(function(e,n){const{htmlSize:r,...o}=e,s=jt("Input",o),i=tt(o),a=ec(i),l=ke("chakra-input",e.className);return O.jsx(de.input,{size:r,...a,__css:s.field,ref:n,className:l})});Un.displayName="Input";Un.id="Input";function _c(t,e){return Array.isArray(t)?t.map(n=>n===null?null:e(n)):_l(t)?Object.keys(t).reduce((n,r)=>(n[r]=e(t[r]),n),{}):t!=null?e(t):null}var Mt=fe(function(e,n){const r=Kr("Text",e),{className:o,align:s,decoration:i,casing:a,...l}=tt(e),u=Nl({textAlign:e.align,textDecoration:e.decoration,textTransform:e.casing});return O.jsx(de.p,{ref:n,className:ke("chakra-text",e.className),...u,...l,__css:r})});Mt.displayName="Text";var bo=t=>O.jsx(de.div,{className:"chakra-stack__divider",...t,__css:{...t.__css,borderWidth:0,alignSelf:"stretch",borderColor:"inherit",width:"auto",height:"auto"}});bo.displayName="StackDivider";var $a=t=>O.jsx(de.div,{className:"chakra-stack__item",...t,__css:{display:"inline-block",flex:"0 0 auto",minWidth:0,...t.__css}});$a.displayName="StackItem";function kc(t){const{spacing:e,direction:n}=t,r={column:{my:e,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},"column-reverse":{my:e,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},row:{mx:e,my:0,borderLeftWidth:"1px",borderBottomWidth:0},"row-reverse":{mx:e,my:0,borderLeftWidth:"1px",borderBottomWidth:0}};return{"&":_c(n,o=>r[o])}}var rn=fe((t,e)=>{const{isInline:n,direction:r,align:o,justify:s,spacing:i="0.5rem",wrap:a,children:l,divider:u,className:c,shouldWrapChildren:d,...p}=t,h=n?"row":r??"column",b=j.useMemo(()=>kc({spacing:i,direction:h}),[i,h]),f=!!u,y=!d&&!f,m=j.useMemo(()=>{const _=hs(l);return y?_:_.map((k,x)=>{const I=typeof k.key<"u"?k.key:x,E=x+1===_.length,D=d?O.jsx($a,{children:k},I):k;if(!f)return D;const R=j.cloneElement(u,{__css:b}),$=E?null:R;return O.jsxs(j.Fragment,{children:[D,$]},I)})},[u,b,f,y,d,l]),w=ke("chakra-stack",c);return O.jsx(de.div,{ref:e,display:"flex",alignItems:o,justifyContent:s,flexDirection:h,flexWrap:a,gap:f?void 0:i,className:w,...p,children:m})});rn.displayName="Stack";var zt=fe((t,e)=>O.jsx(rn,{align:"center",...t,direction:"row",ref:e}));zt.displayName="HStack";var ps=fe(function(e,n){const r=Kr("Heading",e),{className:o,...s}=tt(e);return O.jsx(de.h2,{ref:n,className:ke("chakra-heading",e.className),...s,__css:r})});ps.displayName="Heading";var St=de("div");St.displayName="Box";var qa=fe(function(e,n){const{size:r,centerContent:o=!0,...s}=e,i=o?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return O.jsx(St,{ref:n,boxSize:r,__css:{...i,flexShrink:0,flexGrow:0},...s})});qa.displayName="Square";var xc=fe(function(e,n){const{size:r,...o}=e;return O.jsx(qa,{size:r,ref:n,borderRadius:"9999px",...o})});xc.displayName="Circle";var xn=fe(function(e,n){const{direction:r,align:o,justify:s,wrap:i,basis:a,grow:l,shrink:u,...c}=e,d={display:"flex",flexDirection:r,alignItems:o,justifyContent:s,flexWrap:i,flexBasis:a,flexGrow:l,flexShrink:u};return O.jsx(de.div,{ref:n,__css:d,...c})});xn.displayName="Flex";function Ec(t){const{key:e}=t;return e.length===1||e.length>1&&/[^a-zA-Z0-9]/.test(e)}function Cc(t={}){const{timeout:e=300,preventDefault:n=()=>!0}=t,[r,o]=j.useState([]),s=j.useRef(),i=()=>{s.current&&(clearTimeout(s.current),s.current=null)},a=()=>{i(),s.current=setTimeout(()=>{o([]),s.current=null},e)};j.useEffect(()=>i,[]);function l(u){return c=>{if(c.key==="Backspace"){const d=[...r];d.pop(),o(d);return}if(Ec(c)){const d=r.concat(c.key);n(c)&&(c.preventDefault(),c.stopPropagation()),o(d),u(d.join("")),a()}}}return l}function Sc(t,e,n,r){if(e==null)return r;if(!r)return t.find(i=>n(i).toLowerCase().startsWith(e.toLowerCase()));const o=t.filter(s=>n(s).toLowerCase().startsWith(e.toLowerCase()));if(o.length>0){let s;return o.includes(r)?(s=o.indexOf(r)+1,s===o.length&&(s=0),o[s]):(s=t.indexOf(o[0]),t[s])}return r}function Oc(){const t=j.useRef(new Map),e=t.current,n=j.useCallback((o,s,i,a)=>{t.current.set(i,{type:s,el:o,options:a}),o.addEventListener(s,i,a)},[]),r=j.useCallback((o,s,i,a)=>{o.removeEventListener(s,i,a),t.current.delete(i)},[]);return j.useEffect(()=>()=>{e.forEach((o,s)=>{r(o.el,o.type,s,o.options)})},[r,e]),{add:n,remove:r}}function oo(t){const e=t.target,{tagName:n,isContentEditable:r}=e;return n!=="INPUT"&&n!=="TEXTAREA"&&r!==!0}function Ha(t={}){const{ref:e,isDisabled:n,isFocusable:r,clickOnEnter:o=!0,clickOnSpace:s=!0,onMouseDown:i,onMouseUp:a,onClick:l,onKeyDown:u,onKeyUp:c,tabIndex:d,onMouseOver:p,onMouseLeave:h,...b}=t,[f,y]=j.useState(!0),[m,w]=j.useState(!1),_=Oc(),k=A=>{A&&A.tagName!=="BUTTON"&&y(!1)},x=f?d:d||0,I=n&&!r,E=j.useCallback(A=>{if(n){A.stopPropagation(),A.preventDefault();return}A.currentTarget.focus(),l==null||l(A)},[n,l]),N=j.useCallback(A=>{m&&oo(A)&&(A.preventDefault(),A.stopPropagation(),w(!1),_.remove(document,"keyup",N,!1))},[m,_]),D=j.useCallback(A=>{if(u==null||u(A),n||A.defaultPrevented||A.metaKey||!oo(A.nativeEvent)||f)return;const X=o&&A.key==="Enter";s&&A.key===" "&&(A.preventDefault(),w(!0)),X&&(A.preventDefault(),A.currentTarget.click()),_.add(document,"keyup",N,!1)},[n,f,u,o,s,_,N]),R=j.useCallback(A=>{if(c==null||c(A),n||A.defaultPrevented||A.metaKey||!oo(A.nativeEvent)||f)return;s&&A.key===" "&&(A.preventDefault(),w(!1),A.currentTarget.click())},[s,f,n,c]),$=j.useCallback(A=>{A.button===0&&(w(!1),_.remove(document,"mouseup",$,!1))},[_]),P=j.useCallback(A=>{if(A.button!==0)return;if(n){A.stopPropagation(),A.preventDefault();return}f||w(!0),A.currentTarget.focus({preventScroll:!0}),_.add(document,"mouseup",$,!1),i==null||i(A)},[n,f,i,_,$]),B=j.useCallback(A=>{A.button===0&&(f||w(!1),a==null||a(A))},[a,f]),v=j.useCallback(A=>{if(n){A.preventDefault();return}p==null||p(A)},[n,p]),T=j.useCallback(A=>{m&&(A.preventDefault(),w(!1)),h==null||h(A)},[m,h]),H=Te(e,k);return f?{...b,ref:H,type:"button","aria-disabled":I?void 0:n,disabled:I,onClick:E,onMouseDown:i,onMouseUp:a,onKeyUp:c,onKeyDown:u,onMouseOver:p,onMouseLeave:h}:{...b,ref:H,role:"button","data-active":ot(m),"aria-disabled":n?"true":void 0,tabIndex:I?void 0:x,onClick:E,onMouseDown:P,onMouseUp:B,onKeyUp:R,onKeyDown:D,onMouseOver:v,onMouseLeave:T}}function Ic(t){const e=t.current;if(!e)return!1;const n=El(e);return!n||e.contains(n)?!1:!!Cl(n)}function Va(t,e){const{shouldFocus:n,visible:r,focusRef:o}=e,s=n&&!r;$r(()=>{if(!s||Ic(t))return;const i=(o==null?void 0:o.current)||t.current;let a;if(i)return a=requestAnimationFrame(()=>{i.focus({preventScroll:!0})}),()=>{cancelAnimationFrame(a)}},[s,t,o])}var Dc={preventScroll:!0,shouldFocus:!1};function Pc(t,e=Dc){const{focusRef:n,preventScroll:r,shouldFocus:o,visible:s}=e,i=jc(t)?t.current:t,a=o&&s,l=j.useRef(a),u=j.useRef(s);kl(()=>{!u.current&&s&&(l.current=a),u.current=s},[s,a]);const c=j.useCallback(()=>{if(!(!s||!i||!l.current)&&(l.current=!1,!i.contains(document.activeElement)))if(n!=null&&n.current)requestAnimationFrame(()=>{var d;(d=n.current)==null||d.focus({preventScroll:r})});else{const d=xl(i);d.length>0&&requestAnimationFrame(()=>{d[0].focus({preventScroll:r})})}},[s,r,i,n]);$r(()=>{c()},[c]),nn(i,"transitionend",c)}function jc(t){return"current"in t}var Jt=(t,e)=>({var:t,varRef:e?`var(${t}, ${e})`:`var(${t})`}),Ae={arrowShadowColor:Jt("--popper-arrow-shadow-color"),arrowSize:Jt("--popper-arrow-size","8px"),arrowSizeHalf:Jt("--popper-arrow-size-half"),arrowBg:Jt("--popper-arrow-bg"),transformOrigin:Jt("--popper-transform-origin"),arrowOffset:Jt("--popper-arrow-offset")};function Ac(t){if(t.includes("top"))return"1px 1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("bottom"))return"-1px -1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("right"))return"-1px 1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("left"))return"1px -1px 0px 0 var(--popper-arrow-shadow-color)"}var Nc={top:"bottom center","top-start":"bottom left","top-end":"bottom right",bottom:"top center","bottom-start":"top left","bottom-end":"top right",left:"right center","left-start":"right top","left-end":"right bottom",right:"left center","right-start":"left top","right-end":"left bottom"},Fc=t=>Nc[t],Vs={scroll:!0,resize:!0};function Rc(t){let e;return typeof t=="object"?e={enabled:!0,options:{...Vs,...t}}:e={enabled:t,options:Vs},e}var Tc={name:"matchWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:({state:t})=>{t.styles.popper.width=`${t.rects.reference.width}px`},effect:({state:t})=>()=>{const e=t.elements.reference;t.elements.popper.style.width=`${e.offsetWidth}px`}},Bc={name:"transformOrigin",enabled:!0,phase:"write",fn:({state:t})=>{Zs(t)},effect:({state:t})=>()=>{Zs(t)}},Zs=t=>{t.elements.popper.style.setProperty(Ae.transformOrigin.var,Fc(t.placement))},Mc={name:"positionArrow",enabled:!0,phase:"afterWrite",fn:({state:t})=>{zc(t)}},zc=t=>{var e;if(!t.placement)return;const n=Lc(t.placement);if((e=t.elements)!=null&&e.arrow&&n){Object.assign(t.elements.arrow.style,{[n.property]:n.value,width:Ae.arrowSize.varRef,height:Ae.arrowSize.varRef,zIndex:-1});const r={[Ae.arrowSizeHalf.var]:`calc(${Ae.arrowSize.varRef} / 2 - 1px)`,[Ae.arrowOffset.var]:`calc(${Ae.arrowSizeHalf.varRef} * -1)`};for(const o in r)t.elements.arrow.style.setProperty(o,r[o])}},Lc=t=>{if(t.startsWith("top"))return{property:"bottom",value:Ae.arrowOffset.varRef};if(t.startsWith("bottom"))return{property:"top",value:Ae.arrowOffset.varRef};if(t.startsWith("left"))return{property:"right",value:Ae.arrowOffset.varRef};if(t.startsWith("right"))return{property:"left",value:Ae.arrowOffset.varRef}},Wc={name:"innerArrow",enabled:!0,phase:"main",requires:["arrow"],fn:({state:t})=>{Gs(t)},effect:({state:t})=>()=>{Gs(t)}},Gs=t=>{if(!t.elements.arrow)return;const e=t.elements.arrow.querySelector("[data-popper-arrow-inner]");if(!e)return;const n=Ac(t.placement);n&&e.style.setProperty("--popper-arrow-default-shadow",n),Object.assign(e.style,{transform:"rotate(45deg)",background:Ae.arrowBg.varRef,top:0,left:0,width:"100%",height:"100%",position:"absolute",zIndex:"inherit",boxShadow:"var(--popper-arrow-shadow, var(--popper-arrow-default-shadow))"})},Uc={"start-start":{ltr:"left-start",rtl:"right-start"},"start-end":{ltr:"left-end",rtl:"right-end"},"end-start":{ltr:"right-start",rtl:"left-start"},"end-end":{ltr:"right-end",rtl:"left-end"},start:{ltr:"left",rtl:"right"},end:{ltr:"right",rtl:"left"}},Kc={"auto-start":"auto-end","auto-end":"auto-start","top-start":"top-end","top-end":"top-start","bottom-start":"bottom-end","bottom-end":"bottom-start"};function $c(t,e="ltr"){var n,r;const o=((n=Uc[t])==null?void 0:n[e])||t;return e==="ltr"?o:(r=Kc[t])!=null?r:o}var Ue="top",Xe="bottom",Qe="right",Ke="left",ms="auto",Kn=[Ue,Xe,Qe,Ke],ln="start",An="end",qc="clippingParents",Za="viewport",wn="popper",Hc="reference",Ys=Kn.reduce(function(t,e){return t.concat([e+"-"+ln,e+"-"+An])},[]),Ga=[].concat(Kn,[ms]).reduce(function(t,e){return t.concat([e,e+"-"+ln,e+"-"+An])},[]),Vc="beforeRead",Zc="read",Gc="afterRead",Yc="beforeMain",Jc="main",Xc="afterMain",Qc="beforeWrite",eu="write",tu="afterWrite",nu=[Vc,Zc,Gc,Yc,Jc,Xc,Qc,eu,tu];function lt(t){return t?(t.nodeName||"").toLowerCase():null}function Ve(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function qt(t){var e=Ve(t).Element;return t instanceof e||t instanceof Element}function Je(t){var e=Ve(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function ys(t){if(typeof ShadowRoot>"u")return!1;var e=Ve(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function ru(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var r=e.styles[n]||{},o=e.attributes[n]||{},s=e.elements[n];!Je(s)||!lt(s)||(Object.assign(s.style,r),Object.keys(o).forEach(function(i){var a=o[i];a===!1?s.removeAttribute(i):s.setAttribute(i,a===!0?"":a)}))})}function ou(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(r){var o=e.elements[r],s=e.attributes[r]||{},i=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:n[r]),a=i.reduce(function(l,u){return l[u]="",l},{});!Je(o)||!lt(o)||(Object.assign(o.style,a),Object.keys(s).forEach(function(l){o.removeAttribute(l)}))})}}const su={name:"applyStyles",enabled:!0,phase:"write",fn:ru,effect:ou,requires:["computeStyles"]};function it(t){return t.split("-")[0]}var Lt=Math.max,xr=Math.min,cn=Math.round;function _o(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function Ya(){return!/^((?!chrome|android).)*safari/i.test(_o())}function un(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!1);var r=t.getBoundingClientRect(),o=1,s=1;e&&Je(t)&&(o=t.offsetWidth>0&&cn(r.width)/t.offsetWidth||1,s=t.offsetHeight>0&&cn(r.height)/t.offsetHeight||1);var i=qt(t)?Ve(t):window,a=i.visualViewport,l=!Ya()&&n,u=(r.left+(l&&a?a.offsetLeft:0))/o,c=(r.top+(l&&a?a.offsetTop:0))/s,d=r.width/o,p=r.height/s;return{width:d,height:p,top:c,right:u+d,bottom:c+p,left:u,x:u,y:c}}function vs(t){var e=un(t),n=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:r}}function Ja(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&ys(n)){var r=e;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function vt(t){return Ve(t).getComputedStyle(t)}function au(t){return["table","td","th"].indexOf(lt(t))>=0}function Nt(t){return((qt(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zr(t){return lt(t)==="html"?t:t.assignedSlot||t.parentNode||(ys(t)?t.host:null)||Nt(t)}function Js(t){return!Je(t)||vt(t).position==="fixed"?null:t.offsetParent}function iu(t){var e=/firefox/i.test(_o()),n=/Trident/i.test(_o());if(n&&Je(t)){var r=vt(t);if(r.position==="fixed")return null}var o=Zr(t);for(ys(o)&&(o=o.host);Je(o)&&["html","body"].indexOf(lt(o))<0;){var s=vt(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function $n(t){for(var e=Ve(t),n=Js(t);n&&au(n)&&vt(n).position==="static";)n=Js(n);return n&&(lt(n)==="html"||lt(n)==="body"&&vt(n).position==="static")?e:n||iu(t)||e}function gs(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function En(t,e,n){return Lt(t,xr(e,n))}function lu(t,e,n){var r=En(t,e,n);return r>n?n:r}function Xa(){return{top:0,right:0,bottom:0,left:0}}function Qa(t){return Object.assign({},Xa(),t)}function ei(t,e){return e.reduce(function(n,r){return n[r]=t,n},{})}var cu=function(e,n){return e=typeof e=="function"?e(Object.assign({},n.rects,{placement:n.placement})):e,Qa(typeof e!="number"?e:ei(e,Kn))};function uu(t){var e,n=t.state,r=t.name,o=t.options,s=n.elements.arrow,i=n.modifiersData.popperOffsets,a=it(n.placement),l=gs(a),u=[Ke,Qe].indexOf(a)>=0,c=u?"height":"width";if(!(!s||!i)){var d=cu(o.padding,n),p=vs(s),h=l==="y"?Ue:Ke,b=l==="y"?Xe:Qe,f=n.rects.reference[c]+n.rects.reference[l]-i[l]-n.rects.popper[c],y=i[l]-n.rects.reference[l],m=$n(s),w=m?l==="y"?m.clientHeight||0:m.clientWidth||0:0,_=f/2-y/2,k=d[h],x=w-p[c]-d[b],I=w/2-p[c]/2+_,E=En(k,I,x),N=l;n.modifiersData[r]=(e={},e[N]=E,e.centerOffset=E-I,e)}}function du(t){var e=t.state,n=t.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=e.elements.popper.querySelector(o),!o)||Ja(e.elements.popper,o)&&(e.elements.arrow=o))}const fu={name:"arrow",enabled:!0,phase:"main",fn:uu,effect:du,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function dn(t){return t.split("-")[1]}var hu={top:"auto",right:"auto",bottom:"auto",left:"auto"};function pu(t,e){var n=t.x,r=t.y,o=e.devicePixelRatio||1;return{x:cn(n*o)/o||0,y:cn(r*o)/o||0}}function Xs(t){var e,n=t.popper,r=t.popperRect,o=t.placement,s=t.variation,i=t.offsets,a=t.position,l=t.gpuAcceleration,u=t.adaptive,c=t.roundOffsets,d=t.isFixed,p=i.x,h=p===void 0?0:p,b=i.y,f=b===void 0?0:b,y=typeof c=="function"?c({x:h,y:f}):{x:h,y:f};h=y.x,f=y.y;var m=i.hasOwnProperty("x"),w=i.hasOwnProperty("y"),_=Ke,k=Ue,x=window;if(u){var I=$n(n),E="clientHeight",N="clientWidth";if(I===Ve(n)&&(I=Nt(n),vt(I).position!=="static"&&a==="absolute"&&(E="scrollHeight",N="scrollWidth")),I=I,o===Ue||(o===Ke||o===Qe)&&s===An){k=Xe;var D=d&&I===x&&x.visualViewport?x.visualViewport.height:I[E];f-=D-r.height,f*=l?1:-1}if(o===Ke||(o===Ue||o===Xe)&&s===An){_=Qe;var R=d&&I===x&&x.visualViewport?x.visualViewport.width:I[N];h-=R-r.width,h*=l?1:-1}}var $=Object.assign({position:a},u&&hu),P=c===!0?pu({x:h,y:f},Ve(n)):{x:h,y:f};if(h=P.x,f=P.y,l){var B;return Object.assign({},$,(B={},B[k]=w?"0":"",B[_]=m?"0":"",B.transform=(x.devicePixelRatio||1)<=1?"translate("+h+"px, "+f+"px)":"translate3d("+h+"px, "+f+"px, 0)",B))}return Object.assign({},$,(e={},e[k]=w?f+"px":"",e[_]=m?h+"px":"",e.transform="",e))}function mu(t){var e=t.state,n=t.options,r=n.gpuAcceleration,o=r===void 0?!0:r,s=n.adaptive,i=s===void 0?!0:s,a=n.roundOffsets,l=a===void 0?!0:a,u={placement:it(e.placement),variation:dn(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Xs(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:i,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Xs(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const yu={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:mu,data:{}};var Qn={passive:!0};function vu(t){var e=t.state,n=t.instance,r=t.options,o=r.scroll,s=o===void 0?!0:o,i=r.resize,a=i===void 0?!0:i,l=Ve(e.elements.popper),u=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",n.update,Qn)}),a&&l.addEventListener("resize",n.update,Qn),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",n.update,Qn)}),a&&l.removeEventListener("resize",n.update,Qn)}}const gu={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:vu,data:{}};var wu={left:"right",right:"left",bottom:"top",top:"bottom"};function cr(t){return t.replace(/left|right|bottom|top/g,function(e){return wu[e]})}var bu={start:"end",end:"start"};function Qs(t){return t.replace(/start|end/g,function(e){return bu[e]})}function ws(t){var e=Ve(t),n=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:n,scrollTop:r}}function bs(t){return un(Nt(t)).left+ws(t).scrollLeft}function _u(t,e){var n=Ve(t),r=Nt(t),o=n.visualViewport,s=r.clientWidth,i=r.clientHeight,a=0,l=0;if(o){s=o.width,i=o.height;var u=Ya();(u||!u&&e==="fixed")&&(a=o.offsetLeft,l=o.offsetTop)}return{width:s,height:i,x:a+bs(t),y:l}}function ku(t){var e,n=Nt(t),r=ws(t),o=(e=t.ownerDocument)==null?void 0:e.body,s=Lt(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),i=Lt(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-r.scrollLeft+bs(t),l=-r.scrollTop;return vt(o||n).direction==="rtl"&&(a+=Lt(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:i,x:a,y:l}}function _s(t){var e=vt(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function ti(t){return["html","body","#document"].indexOf(lt(t))>=0?t.ownerDocument.body:Je(t)&&_s(t)?t:ti(Zr(t))}function Cn(t,e){var n;e===void 0&&(e=[]);var r=ti(t),o=r===((n=t.ownerDocument)==null?void 0:n.body),s=Ve(r),i=o?[s].concat(s.visualViewport||[],_s(r)?r:[]):r,a=e.concat(i);return o?a:a.concat(Cn(Zr(i)))}function ko(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function xu(t,e){var n=un(t,!1,e==="fixed");return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}function ea(t,e,n){return e===Za?ko(_u(t,n)):qt(e)?xu(e,n):ko(ku(Nt(t)))}function Eu(t){var e=Cn(Zr(t)),n=["absolute","fixed"].indexOf(vt(t).position)>=0,r=n&&Je(t)?$n(t):t;return qt(r)?e.filter(function(o){return qt(o)&&Ja(o,r)&<(o)!=="body"}):[]}function Cu(t,e,n,r){var o=e==="clippingParents"?Eu(t):[].concat(e),s=[].concat(o,[n]),i=s[0],a=s.reduce(function(l,u){var c=ea(t,u,r);return l.top=Lt(c.top,l.top),l.right=xr(c.right,l.right),l.bottom=xr(c.bottom,l.bottom),l.left=Lt(c.left,l.left),l},ea(t,i,r));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function ni(t){var e=t.reference,n=t.element,r=t.placement,o=r?it(r):null,s=r?dn(r):null,i=e.x+e.width/2-n.width/2,a=e.y+e.height/2-n.height/2,l;switch(o){case Ue:l={x:i,y:e.y-n.height};break;case Xe:l={x:i,y:e.y+e.height};break;case Qe:l={x:e.x+e.width,y:a};break;case Ke:l={x:e.x-n.width,y:a};break;default:l={x:e.x,y:e.y}}var u=o?gs(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case ln:l[u]=l[u]-(e[c]/2-n[c]/2);break;case An:l[u]=l[u]+(e[c]/2-n[c]/2);break}}return l}function Nn(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=r===void 0?t.placement:r,s=n.strategy,i=s===void 0?t.strategy:s,a=n.boundary,l=a===void 0?qc:a,u=n.rootBoundary,c=u===void 0?Za:u,d=n.elementContext,p=d===void 0?wn:d,h=n.altBoundary,b=h===void 0?!1:h,f=n.padding,y=f===void 0?0:f,m=Qa(typeof y!="number"?y:ei(y,Kn)),w=p===wn?Hc:wn,_=t.rects.popper,k=t.elements[b?w:p],x=Cu(qt(k)?k:k.contextElement||Nt(t.elements.popper),l,c,i),I=un(t.elements.reference),E=ni({reference:I,element:_,strategy:"absolute",placement:o}),N=ko(Object.assign({},_,E)),D=p===wn?N:I,R={top:x.top-D.top+m.top,bottom:D.bottom-x.bottom+m.bottom,left:x.left-D.left+m.left,right:D.right-x.right+m.right},$=t.modifiersData.offset;if(p===wn&&$){var P=$[o];Object.keys(R).forEach(function(B){var v=[Qe,Xe].indexOf(B)>=0?1:-1,T=[Ue,Xe].indexOf(B)>=0?"y":"x";R[B]+=P[T]*v})}return R}function Su(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=n.boundary,s=n.rootBoundary,i=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?Ga:l,c=dn(r),d=c?a?Ys:Ys.filter(function(b){return dn(b)===c}):Kn,p=d.filter(function(b){return u.indexOf(b)>=0});p.length===0&&(p=d);var h=p.reduce(function(b,f){return b[f]=Nn(t,{placement:f,boundary:o,rootBoundary:s,padding:i})[it(f)],b},{});return Object.keys(h).sort(function(b,f){return h[b]-h[f]})}function Ou(t){if(it(t)===ms)return[];var e=cr(t);return[Qs(t),e,Qs(e)]}function Iu(t){var e=t.state,n=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,i=n.altAxis,a=i===void 0?!0:i,l=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,h=n.flipVariations,b=h===void 0?!0:h,f=n.allowedAutoPlacements,y=e.options.placement,m=it(y),w=m===y,_=l||(w||!b?[cr(y)]:Ou(y)),k=[y].concat(_).reduce(function(J,G){return J.concat(it(G)===ms?Su(e,{placement:G,boundary:c,rootBoundary:d,padding:u,flipVariations:b,allowedAutoPlacements:f}):G)},[]),x=e.rects.reference,I=e.rects.popper,E=new Map,N=!0,D=k[0],R=0;R=0,T=v?"width":"height",H=Nn(e,{placement:$,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),A=v?B?Qe:Ke:B?Xe:Ue;x[T]>I[T]&&(A=cr(A));var X=cr(A),K=[];if(s&&K.push(H[P]<=0),a&&K.push(H[A]<=0,H[X]<=0),K.every(function(J){return J})){D=$,N=!1;break}E.set($,K)}if(N)for(var ne=b?3:1,z=function(G){var me=k.find(function(we){var ie=E.get(we);if(ie)return ie.slice(0,G).every(function(ue){return ue})});if(me)return D=me,"break"},M=ne;M>0;M--){var te=z(M);if(te==="break")break}e.placement!==D&&(e.modifiersData[r]._skip=!0,e.placement=D,e.reset=!0)}}const Du={name:"flip",enabled:!0,phase:"main",fn:Iu,requiresIfExists:["offset"],data:{_skip:!1}};function ta(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function na(t){return[Ue,Qe,Xe,Ke].some(function(e){return t[e]>=0})}function Pu(t){var e=t.state,n=t.name,r=e.rects.reference,o=e.rects.popper,s=e.modifiersData.preventOverflow,i=Nn(e,{elementContext:"reference"}),a=Nn(e,{altBoundary:!0}),l=ta(i,r),u=ta(a,o,s),c=na(l),d=na(u);e.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const ju={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Pu};function Au(t,e,n){var r=it(t),o=[Ke,Ue].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,i=s[0],a=s[1];return i=i||0,a=(a||0)*o,[Ke,Qe].indexOf(r)>=0?{x:a,y:i}:{x:i,y:a}}function Nu(t){var e=t.state,n=t.options,r=t.name,o=n.offset,s=o===void 0?[0,0]:o,i=Ga.reduce(function(c,d){return c[d]=Au(d,e.rects,s),c},{}),a=i[e.placement],l=a.x,u=a.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=u),e.modifiersData[r]=i}const Fu={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Nu};function Ru(t){var e=t.state,n=t.name;e.modifiersData[n]=ni({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const Tu={name:"popperOffsets",enabled:!0,phase:"read",fn:Ru,data:{}};function Bu(t){return t==="x"?"y":"x"}function Mu(t){var e=t.state,n=t.options,r=t.name,o=n.mainAxis,s=o===void 0?!0:o,i=n.altAxis,a=i===void 0?!1:i,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,h=p===void 0?!0:p,b=n.tetherOffset,f=b===void 0?0:b,y=Nn(e,{boundary:l,rootBoundary:u,padding:d,altBoundary:c}),m=it(e.placement),w=dn(e.placement),_=!w,k=gs(m),x=Bu(k),I=e.modifiersData.popperOffsets,E=e.rects.reference,N=e.rects.popper,D=typeof f=="function"?f(Object.assign({},e.rects,{placement:e.placement})):f,R=typeof D=="number"?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),$=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,P={x:0,y:0};if(I){if(s){var B,v=k==="y"?Ue:Ke,T=k==="y"?Xe:Qe,H=k==="y"?"height":"width",A=I[k],X=A+y[v],K=A-y[T],ne=h?-N[H]/2:0,z=w===ln?E[H]:N[H],M=w===ln?-N[H]:-E[H],te=e.elements.arrow,J=h&&te?vs(te):{width:0,height:0},G=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Xa(),me=G[v],we=G[T],ie=En(0,E[H],J[H]),ue=_?E[H]/2-ne-ie-me-R.mainAxis:z-ie-me-R.mainAxis,_e=_?-E[H]/2+ne+ie+we+R.mainAxis:M+ie+we+R.mainAxis,ye=e.elements.arrow&&$n(e.elements.arrow),pe=ye?k==="y"?ye.clientTop||0:ye.clientLeft||0:0,xe=(B=$==null?void 0:$[k])!=null?B:0,g=A+ue-xe-pe,U=A+_e-xe,W=En(h?xr(X,g):X,A,h?Lt(K,U):K);I[k]=W,P[k]=W-A}if(a){var S,C=k==="x"?Ue:Ke,F=k==="x"?Xe:Qe,V=I[x],Z=x==="y"?"height":"width",L=V+y[C],Q=V-y[F],re=[Ue,Ke].indexOf(m)!==-1,ee=(S=$==null?void 0:$[x])!=null?S:0,se=re?L:V-E[Z]-N[Z]-ee+R.altAxis,ve=re?V+E[Z]+N[Z]-ee-R.altAxis:Q,he=h&&re?lu(se,V,ve):En(h?se:L,V,h?ve:Q);I[x]=he,P[x]=he-V}e.modifiersData[r]=P}}const zu={name:"preventOverflow",enabled:!0,phase:"main",fn:Mu,requiresIfExists:["offset"]};function Lu(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Wu(t){return t===Ve(t)||!Je(t)?ws(t):Lu(t)}function Uu(t){var e=t.getBoundingClientRect(),n=cn(e.width)/t.offsetWidth||1,r=cn(e.height)/t.offsetHeight||1;return n!==1||r!==1}function Ku(t,e,n){n===void 0&&(n=!1);var r=Je(e),o=Je(e)&&Uu(e),s=Nt(e),i=un(t,o,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((lt(e)!=="body"||_s(s))&&(a=Wu(e)),Je(e)?(l=un(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=bs(s))),{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function $u(t){var e=new Map,n=new Set,r=[];t.forEach(function(s){e.set(s.name,s)});function o(s){n.add(s.name);var i=[].concat(s.requires||[],s.requiresIfExists||[]);i.forEach(function(a){if(!n.has(a)){var l=e.get(a);l&&o(l)}}),r.push(s)}return t.forEach(function(s){n.has(s.name)||o(s)}),r}function qu(t){var e=$u(t);return nu.reduce(function(n,r){return n.concat(e.filter(function(o){return o.phase===r}))},[])}function Hu(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t())})})),e}}function Vu(t){var e=t.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(e).map(function(n){return e[n]})}var ra={placement:"bottom",modifiers:[],strategy:"absolute"};function oa(){for(var t=arguments.length,e=new Array(t),n=0;n{}),_=j.useCallback(()=>{var R;!e||!b.current||!f.current||((R=w.current)==null||R.call(w),y.current=Yu(b.current,f.current,{placement:m,modifiers:[Wc,Mc,Bc,{...Tc,enabled:!!p},{name:"eventListeners",...Rc(i)},{name:"arrow",options:{padding:s}},{name:"offset",options:{offset:a??[0,l]}},{name:"flip",enabled:!!u,options:{padding:8}},{name:"preventOverflow",enabled:!!d,options:{boundary:c}},...n??[]],strategy:o}),y.current.forceUpdate(),w.current=y.current.destroy)},[m,e,n,p,i,s,a,l,u,d,c,o]);j.useEffect(()=>()=>{var R;!b.current&&!f.current&&((R=y.current)==null||R.destroy(),y.current=null)},[]);const k=j.useCallback(R=>{b.current=R,_()},[_]),x=j.useCallback((R={},$=null)=>({...R,ref:Te(k,$)}),[k]),I=j.useCallback(R=>{f.current=R,_()},[_]),E=j.useCallback((R={},$=null)=>({...R,ref:Te(I,$),style:{...R.style,position:o,minWidth:p?void 0:"max-content",inset:"0 auto auto 0"}}),[o,I,p]),N=j.useCallback((R={},$=null)=>{const{size:P,shadowColor:B,bg:v,style:T,...H}=R;return{...H,ref:$,"data-popper-arrow":"",style:Ju(R)}},[]),D=j.useCallback((R={},$=null)=>({...R,ref:$,"data-popper-arrow-inner":""}),[]);return{update(){var R;(R=y.current)==null||R.update()},forceUpdate(){var R;(R=y.current)==null||R.forceUpdate()},transformOrigin:Ae.transformOrigin.varRef,referenceRef:k,popperRef:I,getPopperProps:E,getArrowProps:N,getArrowInnerProps:D,getReferenceProps:x}}function Ju(t){const{size:e,shadowColor:n,bg:r,style:o}=t,s={...o,position:"absolute"};return e&&(s["--popper-arrow-size"]=e),n&&(s["--popper-arrow-shadow-color"]=n),r&&(s["--popper-arrow-bg"]=r),s}function xs(t={}){const{onClose:e,onOpen:n,isOpen:r,id:o}=t,s=Bt(n),i=Bt(e),[a,l]=j.useState(t.defaultIsOpen||!1),u=r!==void 0?r:a,c=r!==void 0,d=j.useId(),p=o??`disclosure-${d}`,h=j.useCallback(()=>{c||l(!1),i==null||i()},[c,i]),b=j.useCallback(()=>{c||l(!0),s==null||s()},[c,s]),f=j.useCallback(()=>{u?h():b()},[u,b,h]);function y(w={}){return{...w,"aria-expanded":u,"aria-controls":p,onClick(_){var k;(k=w.onClick)==null||k.call(w,_),f()}}}function m(w={}){return{...w,hidden:!u,id:p}}return{isOpen:u,onOpen:b,onClose:h,onToggle:f,isControlled:c,getButtonProps:y,getDisclosureProps:m}}function Xu(t){const{ref:e,handler:n,enabled:r=!0}=t,o=Bt(n),i=j.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;j.useEffect(()=>{if(!r)return;const a=d=>{so(d,e)&&(i.isPointerDown=!0)},l=d=>{if(i.ignoreEmulatedMouseEvents){i.ignoreEmulatedMouseEvents=!1;return}i.isPointerDown&&n&&so(d,e)&&(i.isPointerDown=!1,o(d))},u=d=>{i.ignoreEmulatedMouseEvents=!0,n&&i.isPointerDown&&so(d,e)&&(i.isPointerDown=!1,o(d))},c=ri(e.current);return c.addEventListener("mousedown",a,!0),c.addEventListener("mouseup",l,!0),c.addEventListener("touchstart",a,!0),c.addEventListener("touchend",u,!0),()=>{c.removeEventListener("mousedown",a,!0),c.removeEventListener("mouseup",l,!0),c.removeEventListener("touchstart",a,!0),c.removeEventListener("touchend",u,!0)}},[n,e,o,i,r])}function so(t,e){var n;const r=t.target;return r&&!ri(r).contains(r)?!1:!((n=e.current)!=null&&n.contains(r))}function ri(t){var e;return(e=t==null?void 0:t.ownerDocument)!=null?e:document}function oi(t){const{isOpen:e,ref:n}=t,[r,o]=j.useState(e),[s,i]=j.useState(!1);return j.useEffect(()=>{s||(o(e),i(!0))},[e,s,r]),nn(()=>n.current,"animationend",()=>{o(e)}),{present:!(e?!1:!r),onComplete(){var l;const u=Sl(n.current),c=new u.CustomEvent("animationend",{bubbles:!0});(l=n.current)==null||l.dispatchEvent(c)}}}function Es(t){const{wasSelected:e,enabled:n,isSelected:r,mode:o="unmount"}=t;return!!(!n||r||o==="keepMounted"&&e)}var[Qu,ed,td,nd]=Na(),[rd,qn]=et({strict:!1,name:"MenuContext"});function od(t,...e){const n=j.useId(),r=t||n;return j.useMemo(()=>e.map(o=>`${o}-${r}`),[r,e])}function si(t){var e;return(e=t==null?void 0:t.ownerDocument)!=null?e:document}function sa(t){return si(t).activeElement===t}function sd(t={}){const{id:e,closeOnSelect:n=!0,closeOnBlur:r=!0,initialFocusRef:o,autoSelect:s=!0,isLazy:i,isOpen:a,defaultIsOpen:l,onClose:u,onOpen:c,placement:d="bottom-start",lazyBehavior:p="unmount",direction:h,computePositionOnMount:b=!1,...f}=t,y=j.useRef(null),m=j.useRef(null),w=td(),_=j.useCallback(()=>{requestAnimationFrame(()=>{var te;(te=y.current)==null||te.focus({preventScroll:!1})})},[]),k=j.useCallback(()=>{const te=setTimeout(()=>{var J;if(o)(J=o.current)==null||J.focus();else{const G=w.firstEnabled();G&&B(G.index)}});X.current.add(te)},[w,o]),x=j.useCallback(()=>{const te=setTimeout(()=>{const J=w.lastEnabled();J&&B(J.index)});X.current.add(te)},[w]),I=j.useCallback(()=>{c==null||c(),s?k():_()},[s,k,_,c]),{isOpen:E,onOpen:N,onClose:D,onToggle:R}=xs({isOpen:a,defaultIsOpen:l,onClose:u,onOpen:I});Xu({enabled:E&&r,ref:y,handler:te=>{var J;(J=m.current)!=null&&J.contains(te.target)||D()}});const $=ks({...f,enabled:E||b,placement:d,direction:h}),[P,B]=j.useState(-1);$r(()=>{E||B(-1)},[E]),Va(y,{focusRef:m,visible:E,shouldFocus:!0});const v=oi({isOpen:E,ref:y}),[T,H]=od(e,"menu-button","menu-list"),A=j.useCallback(()=>{N(),_()},[N,_]),X=j.useRef(new Set([]));j.useEffect(()=>{const te=X.current;return()=>{te.forEach(J=>clearTimeout(J)),te.clear()}},[]);const K=j.useCallback(()=>{N(),k()},[k,N]),ne=j.useCallback(()=>{N(),x()},[N,x]),z=j.useCallback(()=>{var te,J;const G=si(y.current),me=(te=y.current)==null?void 0:te.contains(G.activeElement);if(!(E&&!me))return;const ie=(J=w.item(P))==null?void 0:J.node;ie==null||ie.focus({preventScroll:!0})},[E,P,w]),M=j.useRef(null);return{openAndFocusMenu:A,openAndFocusFirstItem:K,openAndFocusLastItem:ne,onTransitionEnd:z,unstable__animationState:v,descendants:w,popper:$,buttonId:T,menuId:H,forceUpdate:$.forceUpdate,orientation:"vertical",isOpen:E,onToggle:R,onOpen:N,onClose:D,menuRef:y,buttonRef:m,focusedIndex:P,closeOnSelect:n,closeOnBlur:r,autoSelect:s,setFocusedIndex:B,isLazy:i,lazyBehavior:p,initialFocusRef:o,rafId:M}}function op(t={},e=null){const n=qn(),{onToggle:r,popper:o,openAndFocusFirstItem:s,openAndFocusLastItem:i}=n,a=j.useCallback(l=>{const u=l.key,d={Enter:s,ArrowDown:s,ArrowUp:i}[u];d&&(l.preventDefault(),l.stopPropagation(),d(l))},[s,i]);return{...t,ref:Te(n.buttonRef,e,o.referenceRef),id:n.buttonId,"data-active":ot(n.isOpen),"aria-expanded":n.isOpen,"aria-haspopup":"menu","aria-controls":n.menuId,onClick:Oe(t.onClick,r),onKeyDown:Oe(t.onKeyDown,a)}}function xo(t){var e;return ld(t)&&!!((e=t==null?void 0:t.getAttribute("role"))!=null&&e.startsWith("menuitem"))}function ad(t={},e=null){const n=qn();if(!n)throw new Error("useMenuContext: context is undefined. Seems you forgot to wrap component within ");const{focusedIndex:r,setFocusedIndex:o,menuRef:s,isOpen:i,onClose:a,menuId:l,isLazy:u,lazyBehavior:c,unstable__animationState:d}=n,p=ed(),h=Cc({preventDefault:m=>m.key!==" "&&xo(m.target)}),b=j.useCallback(m=>{if(!m.currentTarget.contains(m.target))return;const w=m.key,k={Tab:I=>I.preventDefault(),Escape:a,ArrowDown:()=>{const I=p.nextEnabled(r);I&&o(I.index)},ArrowUp:()=>{const I=p.prevEnabled(r);I&&o(I.index)}}[w];if(k){m.preventDefault(),k(m);return}const x=h(I=>{const E=Sc(p.values(),I,N=>{var D,R;return(R=(D=N==null?void 0:N.node)==null?void 0:D.textContent)!=null?R:""},p.item(r));if(E){const N=p.indexOf(E.node);o(N)}});xo(m.target)&&x(m)},[p,r,h,a,o]),f=j.useRef(!1);i&&(f.current=!0);const y=Es({wasSelected:f.current,enabled:u,mode:c,isSelected:d.present});return{...t,ref:Te(s,e),children:y?t.children:null,tabIndex:-1,role:"menu",id:l,style:{...t.style,transformOrigin:"var(--popper-transform-origin)"},"aria-orientation":"vertical",onKeyDown:Oe(t.onKeyDown,b)}}function id(t={}){const{popper:e,isOpen:n}=qn();return e.getPopperProps({...t,style:{visibility:n?"visible":"hidden",...t.style}})}function ai(t={},e=null){const{onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onClick:s,onFocus:i,isDisabled:a,isFocusable:l,closeOnSelect:u,type:c,...d}=t,p=qn(),{setFocusedIndex:h,focusedIndex:b,closeOnSelect:f,onClose:y,menuRef:m,isOpen:w,menuId:_,rafId:k}=p,x=j.useRef(null),I=`${_}-menuitem-${j.useId()}`,{index:E,register:N}=nd({disabled:a&&!l}),D=j.useCallback(A=>{n==null||n(A),!a&&h(E)},[h,E,a,n]),R=j.useCallback(A=>{r==null||r(A),x.current&&!sa(x.current)&&D(A)},[D,r]),$=j.useCallback(A=>{o==null||o(A),!a&&h(-1)},[h,a,o]),P=j.useCallback(A=>{s==null||s(A),xo(A.currentTarget)&&(u??f)&&y()},[y,s,f,u]),B=j.useCallback(A=>{i==null||i(A),h(E)},[h,i,E]),v=E===b,T=a&&!l;$r(()=>{if(w)return v&&!T&&x.current?(k.current&&cancelAnimationFrame(k.current),k.current=requestAnimationFrame(()=>{var A;(A=x.current)==null||A.focus({preventScroll:!0}),k.current=null})):m.current&&!sa(m.current)&&m.current.focus({preventScroll:!0}),()=>{k.current&&cancelAnimationFrame(k.current)}},[v,T,m,w]);const H=Ha({onClick:P,onFocus:B,onMouseEnter:D,onMouseMove:R,onMouseLeave:$,ref:Te(N,x,e),isDisabled:a,isFocusable:l});return{...d,...H,type:c??H.type,id:I,role:"menuitem",tabIndex:v?0:-1}}function sp(t={},e=null){const{type:n="radio",isChecked:r,...o}=t;return{...ai(o,e),role:`menuitem${n}`,"aria-checked":r}}function ap(t={}){const{children:e,type:n="radio",value:r,defaultValue:o,onChange:s,...i}=t,l=n==="radio"?"":[],[u,c]=Fa({defaultValue:o??l,value:r,onChange:s}),d=j.useCallback(b=>{if(n==="radio"&&typeof u=="string"&&c(b),n==="checkbox"&&Array.isArray(u)){const f=u.includes(b)?u.filter(y=>y!==b):u.concat(b);c(f)}},[u,c,n]),h=hs(e).map(b=>{if(b.type.id!=="MenuItemOption")return b;const f=m=>{var w,_;d(b.props.value),(_=(w=b.props).onClick)==null||_.call(w,m)},y=n==="radio"?b.props.value===u:u.includes(b.props.value);return j.cloneElement(b,{type:n,onClick:f,isChecked:y})});return{...i,children:h}}function ld(t){var e;if(!cd(t))return!1;const n=(e=t.ownerDocument.defaultView)!=null?e:window;return t instanceof n.HTMLElement}function cd(t){return t!=null&&typeof t=="object"&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE}var[ud,Gr]=et({name:"MenuStylesContext",errorMessage:`useMenuStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Cs=t=>{const{children:e}=t,n=jt("Menu",t),r=tt(t),{direction:o}=os(),{descendants:s,...i}=sd({...r,direction:o}),a=j.useMemo(()=>i,[i]),{isOpen:l,onClose:u,forceUpdate:c}=a;return O.jsx(Qu,{value:s,children:O.jsx(rd,{value:a,children:O.jsx(ud,{value:n,children:Ea(e,{isOpen:l,onClose:u,forceUpdate:c})})})})};Cs.displayName="Menu";var ii=fe((t,e)=>{const n=Gr();return O.jsx(de.span,{ref:e,...t,__css:n.command,className:"chakra-menu__command"})});ii.displayName="MenuCommand";var dd=fe((t,e)=>{const{type:n,...r}=t,o=Gr(),s=r.as||n?n??void 0:"button",i=j.useMemo(()=>({textDecoration:"none",color:"inherit",userSelect:"none",display:"flex",width:"100%",alignItems:"center",textAlign:"start",flex:"0 0 auto",outline:0,...o.item}),[o.item]);return O.jsx(de.button,{ref:e,type:s,...r,__css:i})}),li=t=>{const{className:e,children:n,...r}=t,o=Gr(),s=j.Children.only(n),i=j.isValidElement(s)?j.cloneElement(s,{focusable:"false","aria-hidden":!0,className:ke("chakra-menu__icon",s.props.className)}):null,a=ke("chakra-menu__icon-wrapper",e);return O.jsx(de.span,{className:a,...r,__css:o.icon,children:i})};li.displayName="MenuIcon";var bt=fe((t,e)=>{const{icon:n,iconSpacing:r="0.75rem",command:o,commandSpacing:s="0.75rem",children:i,...a}=t,l=ai(a,e),c=n||o?O.jsx("span",{style:{pointerEvents:"none",flex:1},children:i}):i;return O.jsxs(dd,{...l,className:ke("chakra-menu__menuitem",l.className),children:[n&&O.jsx(li,{fontSize:"0.8em",marginEnd:r,children:n}),c,o&&O.jsx(ii,{marginStart:s,children:o})]})});bt.displayName="MenuItem";var fd={enter:{visibility:"visible",opacity:1,scale:1,transition:{duration:.2,ease:[.4,0,.2,1]}},exit:{transitionEnd:{visibility:"hidden"},opacity:0,scale:.8,transition:{duration:.1,easings:"easeOut"}}},hd=de(ss.div),Ss=fe(function(e,n){var r,o;const{rootProps:s,motionProps:i,...a}=e,{isOpen:l,onTransitionEnd:u,unstable__animationState:c}=qn(),d=ad(a,n),p=id(s),h=Gr();return O.jsx(de.div,{...p,__css:{zIndex:(o=e.zIndex)!=null?o:(r=h.list)==null?void 0:r.zIndex},children:O.jsx(hd,{variants:fd,initial:!1,animate:l?"enter":"exit",__css:{outline:0,...h.list},...i,className:ke("chakra-menu__menu-list",d.className),...d,onUpdate:u,onAnimationComplete:Ca(c.onComplete,d.onAnimationComplete)})})});Ss.displayName="MenuList";var[pd,Hn]=et({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),[md,Os]=et({name:"PopoverStylesContext",errorMessage:`usePopoverStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `});function ci(t){const e=j.Children.only(t.children),{getTriggerProps:n}=Hn();return j.cloneElement(e,n(e.props,e.ref))}ci.displayName="PopoverTrigger";var Xt={click:"click",hover:"hover"};function yd(t={}){const{closeOnBlur:e=!0,closeOnEsc:n=!0,initialFocusRef:r,id:o,returnFocusOnClose:s=!0,autoFocus:i=!0,arrowSize:a,arrowShadowColor:l,trigger:u=Xt.click,openDelay:c=200,closeDelay:d=200,isLazy:p,lazyBehavior:h="unmount",computePositionOnMount:b,...f}=t,{isOpen:y,onClose:m,onOpen:w,onToggle:_}=xs(t),k=j.useRef(null),x=j.useRef(null),I=j.useRef(null),E=j.useRef(!1),N=j.useRef(!1);y&&(N.current=!0);const[D,R]=j.useState(!1),[$,P]=j.useState(!1),B=j.useId(),v=o??B,[T,H,A,X]=["popover-trigger","popover-content","popover-header","popover-body"].map(U=>`${U}-${v}`),{referenceRef:K,getArrowProps:ne,getPopperProps:z,getArrowInnerProps:M,forceUpdate:te}=ks({...f,enabled:y||!!b}),J=oi({isOpen:y,ref:I});lc({enabled:y,ref:x}),Va(I,{focusRef:x,visible:y,shouldFocus:s&&u===Xt.click}),Pc(I,{focusRef:r,visible:y,shouldFocus:i&&u===Xt.click});const G=Es({wasSelected:N.current,enabled:p,mode:h,isSelected:J.present}),me=j.useCallback((U={},W=null)=>{const S={...U,style:{...U.style,transformOrigin:Ae.transformOrigin.varRef,[Ae.arrowSize.var]:a?`${a}px`:void 0,[Ae.arrowShadowColor.var]:l},ref:Te(I,W),children:G?U.children:null,id:H,tabIndex:-1,role:"dialog",onKeyDown:Oe(U.onKeyDown,C=>{n&&C.key==="Escape"&&m()}),onBlur:Oe(U.onBlur,C=>{const F=aa(C),V=ao(I.current,F),Z=ao(x.current,F);y&&e&&(!V&&!Z)&&m()}),"aria-labelledby":D?A:void 0,"aria-describedby":$?X:void 0};return u===Xt.hover&&(S.role="tooltip",S.onMouseEnter=Oe(U.onMouseEnter,()=>{E.current=!0}),S.onMouseLeave=Oe(U.onMouseLeave,C=>{C.nativeEvent.relatedTarget!==null&&(E.current=!1,setTimeout(()=>m(),d))})),S},[G,H,D,A,$,X,u,n,m,y,e,d,l,a]),we=j.useCallback((U={},W=null)=>z({...U,style:{visibility:y?"visible":"hidden",...U.style}},W),[y,z]),ie=j.useCallback((U,W=null)=>({...U,ref:Te(W,k,K)}),[k,K]),ue=j.useRef(),_e=j.useRef(),ye=j.useCallback(U=>{k.current==null&&K(U)},[K]),pe=j.useCallback((U={},W=null)=>{const S={...U,ref:Te(x,W,ye),id:T,"aria-haspopup":"dialog","aria-expanded":y,"aria-controls":H};return u===Xt.click&&(S.onClick=Oe(U.onClick,_)),u===Xt.hover&&(S.onFocus=Oe(U.onFocus,()=>{ue.current===void 0&&w()}),S.onBlur=Oe(U.onBlur,C=>{const F=aa(C),V=!ao(I.current,F);y&&e&&V&&m()}),S.onKeyDown=Oe(U.onKeyDown,C=>{C.key==="Escape"&&m()}),S.onMouseEnter=Oe(U.onMouseEnter,()=>{E.current=!0,ue.current=window.setTimeout(()=>w(),c)}),S.onMouseLeave=Oe(U.onMouseLeave,()=>{E.current=!1,ue.current&&(clearTimeout(ue.current),ue.current=void 0),_e.current=window.setTimeout(()=>{E.current===!1&&m()},d)})),S},[T,y,H,u,ye,_,w,e,m,c,d]);j.useEffect(()=>()=>{ue.current&&clearTimeout(ue.current),_e.current&&clearTimeout(_e.current)},[]);const xe=j.useCallback((U={},W=null)=>({...U,id:A,ref:Te(W,S=>{R(!!S)})}),[A]),g=j.useCallback((U={},W=null)=>({...U,id:X,ref:Te(W,S=>{P(!!S)})}),[X]);return{forceUpdate:te,isOpen:y,onAnimationComplete:J.onComplete,onClose:m,getAnchorProps:ie,getArrowProps:ne,getArrowInnerProps:M,getPopoverPositionerProps:we,getPopoverProps:me,getTriggerProps:pe,getHeaderProps:xe,getBodyProps:g}}function ao(t,e){return t===e||(t==null?void 0:t.contains(e))}function aa(t){var e;const n=t.currentTarget.ownerDocument.activeElement;return(e=t.relatedTarget)!=null?e:n}function ui(t){const e=jt("Popover",t),{children:n,...r}=tt(t),o=os(),s=yd({...r,direction:o.direction});return O.jsx(pd,{value:s,children:O.jsx(md,{value:e,children:Ea(n,{isOpen:s.isOpen,onClose:s.onClose,forceUpdate:s.forceUpdate})})})}ui.displayName="Popover";var di=fe(function(e,n){const{getBodyProps:r}=Hn(),o=Os();return O.jsx(de.div,{...r(e,n),className:ke("chakra-popover__body",e.className),__css:o.body})});di.displayName="PopoverBody";var fi=fe(function(e,n){const{onClose:r}=Hn(),o=Os();return O.jsx(Ol,{size:"sm",onClick:r,className:ke("chakra-popover__close-btn",e.className),__css:o.closeButton,ref:n,...e})});fi.displayName="PopoverCloseButton";function vd(t){if(t)return{enter:{...t.enter,visibility:"visible"},exit:{...t.exit,transitionEnd:{visibility:"hidden"}}}}var gd={exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}},wd=de(ss.section),hi=fe(function(e,n){const{variants:r=gd,...o}=e,{isOpen:s}=Hn();return O.jsx(wd,{ref:n,variants:vd(r),initial:!1,animate:s?"enter":"exit",...o})});hi.displayName="PopoverTransition";var pi=fe(function(e,n){const{rootProps:r,motionProps:o,...s}=e,{getPopoverProps:i,getPopoverPositionerProps:a,onAnimationComplete:l}=Hn(),u=Os(),c={position:"relative",display:"flex",flexDirection:"column",...u.content};return O.jsx(de.div,{...a(r),__css:u.popper,className:"chakra-popover__popper",children:O.jsx(hi,{...o,...i(s,n),onAnimationComplete:Ca(l,s.onAnimationComplete),className:ke("chakra-popover__content",e.className),__css:c})})});pi.displayName="PopoverContent";var[bd,_d,kd,xd]=Na();function Ed(t){var e;const{defaultIndex:n,onChange:r,index:o,isManual:s,isLazy:i,lazyBehavior:a="unmount",orientation:l="horizontal",direction:u="ltr",...c}=t,[d,p]=j.useState(n??0),[h,b]=Fa({defaultValue:n??0,value:o,onChange:r});j.useEffect(()=>{o!=null&&p(o)},[o]);const f=kd(),y=j.useId();return{id:`tabs-${(e=t.id)!=null?e:y}`,selectedIndex:h,focusedIndex:d,setSelectedIndex:b,setFocusedIndex:p,isManual:s,isLazy:i,lazyBehavior:a,orientation:l,descendants:f,direction:u,htmlProps:c}}var[Cd,Yr]=et({name:"TabsContext",errorMessage:"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within "});function Sd(t){const{focusedIndex:e,orientation:n,direction:r}=Yr(),o=_d(),s=j.useCallback(i=>{const a=()=>{var w;const _=o.nextEnabled(e);_&&((w=_.node)==null||w.focus())},l=()=>{var w;const _=o.prevEnabled(e);_&&((w=_.node)==null||w.focus())},u=()=>{var w;const _=o.firstEnabled();_&&((w=_.node)==null||w.focus())},c=()=>{var w;const _=o.lastEnabled();_&&((w=_.node)==null||w.focus())},d=n==="horizontal",p=n==="vertical",h=i.key,b=r==="ltr"?"ArrowLeft":"ArrowRight",f=r==="ltr"?"ArrowRight":"ArrowLeft",m={[b]:()=>d&&l(),[f]:()=>d&&a(),ArrowDown:()=>p&&a(),ArrowUp:()=>p&&l(),Home:u,End:c}[h];m&&(i.preventDefault(),m(i))},[o,e,n,r]);return{...t,role:"tablist","aria-orientation":n,onKeyDown:Oe(t.onKeyDown,s)}}function Od(t){const{isDisabled:e=!1,isFocusable:n=!1,...r}=t,{setSelectedIndex:o,isManual:s,id:i,setFocusedIndex:a,selectedIndex:l}=Yr(),{index:u,register:c}=xd({disabled:e&&!n}),d=u===l,p=()=>{o(u)},h=()=>{a(u),!s&&!(e&&n)&&o(u)},b=Ha({...r,ref:Te(c,t.ref),isDisabled:e,isFocusable:n,onClick:Oe(t.onClick,p)}),f="button";return{...b,id:mi(i,u),role:"tab",tabIndex:d?0:-1,type:f,"aria-selected":d,"aria-controls":yi(i,u),onFocus:e?void 0:Oe(t.onFocus,h)}}var[Id,Dd]=et({});function Pd(t){const e=Yr(),{id:n,selectedIndex:r}=e,s=hs(t.children).map((i,a)=>j.createElement(Id,{key:a,value:{isSelected:a===r,id:yi(n,a),tabId:mi(n,a),selectedIndex:r}},i));return{...t,children:s}}function jd(t){const{children:e,...n}=t,{isLazy:r,lazyBehavior:o}=Yr(),{isSelected:s,id:i,tabId:a}=Dd(),l=j.useRef(!1);s&&(l.current=!0);const u=Es({wasSelected:l.current,isSelected:s,enabled:r,mode:o});return{tabIndex:0,...n,children:u?e:null,role:"tabpanel","aria-labelledby":a,hidden:!s,id:i}}function mi(t,e){return`${t}--tab-${e}`}function yi(t,e){return`${t}--tabpanel-${e}`}var[Ad,Jr]=et({name:"TabsStylesContext",errorMessage:`useTabsStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),vi=fe(function(e,n){const r=jt("Tabs",e),{children:o,className:s,...i}=tt(e),{htmlProps:a,descendants:l,...u}=Ed(i),c=j.useMemo(()=>u,[u]),{isFitted:d,...p}=a,h={position:"relative",...r.root};return O.jsx(bd,{value:l,children:O.jsx(Cd,{value:c,children:O.jsx(Ad,{value:r,children:O.jsx(de.div,{className:ke("chakra-tabs",s),ref:n,...p,__css:h,children:o})})})})});vi.displayName="Tabs";var gi=fe(function(e,n){const r=Sd({...e,ref:n}),s={display:"flex",...Jr().tablist};return O.jsx(de.div,{...r,className:ke("chakra-tabs__tablist",e.className),__css:s})});gi.displayName="TabList";var Eo=fe(function(e,n){const r=jd({...e,ref:n}),o=Jr();return O.jsx(de.div,{outline:"0",...r,className:ke("chakra-tabs__tab-panel",e.className),__css:o.tabpanel})});Eo.displayName="TabPanel";var wi=fe(function(e,n){const r=Pd(e),o=Jr();return O.jsx(de.div,{...r,width:"100%",ref:n,className:ke("chakra-tabs__tab-panels",e.className),__css:o.tabpanels})});wi.displayName="TabPanels";var Co=fe(function(e,n){const r=Jr(),o=Od({...e,ref:n}),s={outline:"0",display:"flex",alignItems:"center",justifyContent:"center",...r.tab};return O.jsx(de.button,{...o,className:ke("chakra-tabs__tab",e.className),__css:s})});Co.displayName="Tab";var[Nd,bi]=et({name:"TagStylesContext",errorMessage:`useTagStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Xr=fe((t,e)=>{const n=jt("Tag",t),r=tt(t),o={display:"inline-flex",verticalAlign:"top",alignItems:"center",maxWidth:"100%",...n.container};return O.jsx(Nd,{value:n,children:O.jsx(de.span,{ref:e,...r,__css:o})})});Xr.displayName="Tag";var Fd=fe((t,e)=>{const n=bi();return O.jsx(de.span,{ref:e,noOfLines:1,...t,__css:n.label})});Fd.displayName="TagLabel";var Rd=fe((t,e)=>O.jsx(Ur,{ref:e,verticalAlign:"top",marginEnd:"0.5rem",...t}));Rd.displayName="TagLeftIcon";var Td=fe((t,e)=>O.jsx(Ur,{ref:e,verticalAlign:"top",marginStart:"0.5rem",...t}));Td.displayName="TagRightIcon";var _i=t=>O.jsx(Ur,{verticalAlign:"inherit",viewBox:"0 0 512 512",...t,children:O.jsx("path",{fill:"currentColor",d:"M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z"})});_i.displayName="TagCloseIcon";var Bd=fe((t,e)=>{const{isDisabled:n,children:r,...o}=t,i={display:"flex",alignItems:"center",justifyContent:"center",outline:"0",...bi().closeButton};return O.jsx(de.button,{ref:e,"aria-label":"close",...o,type:"button",disabled:n,__css:i,children:r||O.jsx(_i,{})})});Bd.displayName="TagCloseButton";var Md={exit:{scale:.85,opacity:0,transition:{opacity:{duration:.15,easings:"easeInOut"},scale:{duration:.2,easings:"easeInOut"}}},enter:{scale:1,opacity:1,transition:{opacity:{easings:"easeOut",duration:.2},scale:{duration:.2,ease:[.175,.885,.4,1.1]}}}},So=t=>{var e;return((e=t.current)==null?void 0:e.ownerDocument)||document},ur=t=>{var e,n;return((n=(e=t.current)==null?void 0:e.ownerDocument)==null?void 0:n.defaultView)||window};function zd(t={}){const{openDelay:e=0,closeDelay:n=0,closeOnClick:r=!0,closeOnMouseDown:o,closeOnScroll:s,closeOnPointerDown:i=o,closeOnEsc:a=!0,onOpen:l,onClose:u,placement:c,id:d,isOpen:p,defaultIsOpen:h,arrowSize:b=10,arrowShadowColor:f,arrowPadding:y,modifiers:m,isDisabled:w,gutter:_,offset:k,direction:x,...I}=t,{isOpen:E,onOpen:N,onClose:D}=xs({isOpen:p,defaultIsOpen:h,onOpen:l,onClose:u}),{referenceRef:R,getPopperProps:$,getArrowInnerProps:P,getArrowProps:B}=ks({enabled:E,placement:c,arrowPadding:y,modifiers:m,gutter:_,offset:k,direction:x}),v=j.useId(),H=`tooltip-${d??v}`,A=j.useRef(null),X=j.useRef(),K=j.useCallback(()=>{X.current&&(clearTimeout(X.current),X.current=void 0)},[]),ne=j.useRef(),z=j.useCallback(()=>{ne.current&&(clearTimeout(ne.current),ne.current=void 0)},[]),M=j.useCallback(()=>{z(),D()},[D,z]),te=Ld(A,M),J=j.useCallback(()=>{if(!w&&!X.current){E&&te();const pe=ur(A);X.current=pe.setTimeout(N,e)}},[te,w,E,N,e]),G=j.useCallback(()=>{K();const pe=ur(A);ne.current=pe.setTimeout(M,n)},[n,M,K]),me=j.useCallback(()=>{E&&r&&G()},[r,G,E]),we=j.useCallback(()=>{E&&i&&G()},[i,G,E]),ie=j.useCallback(pe=>{E&&pe.key==="Escape"&&G()},[E,G]);nn(()=>So(A),"keydown",a?ie:void 0),nn(()=>{if(!s)return null;const pe=A.current;if(!pe)return null;const xe=Ka(pe);return xe.localName==="body"?ur(A):xe},"scroll",()=>{E&&s&&M()},{passive:!0,capture:!0}),j.useEffect(()=>{w&&(K(),E&&D())},[w,E,D,K]),j.useEffect(()=>()=>{K(),z()},[K,z]),nn(()=>A.current,"pointerleave",G);const ue=j.useCallback((pe={},xe=null)=>({...pe,ref:Te(A,xe,R),onPointerEnter:Oe(pe.onPointerEnter,U=>{U.pointerType!=="touch"&&J()}),onClick:Oe(pe.onClick,me),onPointerDown:Oe(pe.onPointerDown,we),onFocus:Oe(pe.onFocus,J),onBlur:Oe(pe.onBlur,G),"aria-describedby":E?H:void 0}),[J,G,we,E,H,me,R]),_e=j.useCallback((pe={},xe=null)=>$({...pe,style:{...pe.style,[Ae.arrowSize.var]:b?`${b}px`:void 0,[Ae.arrowShadowColor.var]:f}},xe),[$,b,f]),ye=j.useCallback((pe={},xe=null)=>{const g={...pe.style,position:"relative",transformOrigin:Ae.transformOrigin.varRef};return{ref:xe,...I,...pe,id:H,role:"tooltip",style:g}},[I,H]);return{isOpen:E,show:J,hide:G,getTriggerProps:ue,getTooltipProps:ye,getTooltipPositionerProps:_e,getArrowProps:B,getArrowInnerProps:P}}var io="chakra-ui:close-tooltip";function Ld(t,e){return j.useEffect(()=>{const n=So(t);return n.addEventListener(io,e),()=>n.removeEventListener(io,e)},[e,t]),()=>{const n=So(t),r=ur(t);n.dispatchEvent(new r.CustomEvent(io))}}function Wd(t,e=[]){const n=Object.assign({},t);for(const r of e)r in n&&delete n[r];return n}function Ud(t,e){const n={};for(const r of e)r in t&&(n[r]=t[r]);return n}var Kd=de(ss.div),Ht=fe((t,e)=>{var n,r;const o=Kr("Tooltip",t),s=tt(t),i=os(),{children:a,label:l,shouldWrapChildren:u,"aria-label":c,hasArrow:d,bg:p,portalProps:h,background:b,backgroundColor:f,bgColor:y,motionProps:m,...w}=s,_=(r=(n=b??f)!=null?n:p)!=null?r:y;if(_){o.bg=_;const $=Il(i,"colors",_);o[Ae.arrowBg.var]=$}const k=zd({...w,direction:i.direction}),x=typeof a=="string"||u;let I;if(x)I=O.jsx(de.span,{display:"inline-block",tabIndex:0,...k.getTriggerProps(),children:a});else{const $=j.Children.only(a);I=j.cloneElement($,k.getTriggerProps($.props,$.ref))}const E=!!c,N=k.getTooltipProps({},e),D=E?Wd(N,["role","id"]):N,R=Ud(N,["role","id"]);return l?O.jsxs(O.Fragment,{children:[I,O.jsx(Dl,{children:k.isOpen&&O.jsx(Sa,{...h,children:O.jsx(de.div,{...k.getTooltipPositionerProps(),__css:{zIndex:o.zIndex,pointerEvents:"none"},children:O.jsxs(Kd,{variants:Md,initial:"exit",animate:"enter",exit:"exit",...m,...D,__css:o,children:[l,E&&O.jsx(de.span,{srOnly:!0,...R,children:c}),d&&O.jsx(de.div,{"data-popper-arrow":!0,className:"chakra-tooltip__arrow-wrapper",children:O.jsx(de.div,{"data-popper-arrow-inner":!0,className:"chakra-tooltip__arrow",__css:{bg:o.bg}})})]})})})})]}):O.jsx(O.Fragment,{children:a})});Ht.displayName="Tooltip";const $d="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let Fn=(t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t));for(;t--;)e+=$d[n[t]&63];return e},Pe=null;const ki=location.pathname.split("/").slice(0,-1).join("/");let Er=null;At(()=>import(ki+"/scripts/api.js"),__vite__mapDeps([])).then(t=>{Er=t==null?void 0:t.api});At(()=>import(ki+"/scripts/app.js"),__vite__mapDeps([])).then(t=>{Pe=t==null?void 0:t.app});function Ie(t,e){if(Er==null)throw console.error("api is null!"),new Error("api is null!");return Er.fetchApi(t,e)}async function qd(t){console.warn("[workspace deprecated] getDB is deprecated",t);try{const e=await Ie(`/workspace/get_db?table=${t}`);return e.ok?await e.json():void 0}catch(e){console.error("Error fetching workspace:",e);return}}async function Hd(t,e){try{return await(await Ie("/workspace/save_db",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({table:t,json:e})})).text()}catch(n){console.error("Error saving workspace:",n)}}async function ip(t){try{return await(await Ie("/workspace/get_system_dir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({absolute_dir:t??""})})).json()}catch(e){console.error("Error getting workflows dir:",e)}}async function lp(){try{return await(await Ie("/workspace/open_workflow_file_browser",{method:"POST",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error open workflows folder:",t)}}async function Vd(){const e=await(await Ie("/workspace/get_my_workflows_dir")).json();return e.error&&alert(`Failed to fetch my workflows path: ${e.error}`),e}async function cp(){try{return await(await Ie("/model_manager/get_model_list",{method:"GET",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error get all models list:",t)}}async function up(){try{return await(await Ie("/model_manager/get_folder_list",{method:"GET",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error get all models list:",t)}}async function dp(t){try{return await(await Ie("/model_manager/cancel_installation",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({save_path:t})})).text()}catch(e){console.error("Error move file:",e)}}async function fp(t,e){try{return await(await Ie("/workspace/copy_json_files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({src:t,dst:e})})).json()}catch(n){console.error("Error copy flows to new directory:",n)}}const Zd="backup",Cr="workspace";let er=null;function Gd(){return new Promise((t,e)=>{const n=indexedDB.open("WorkspaceDB",3);n.onupgradeneeded=r=>{const o=r.target.result;o.objectStoreNames.contains(Cr)||o.createObjectStore(Cr,{keyPath:"id"})},n.onsuccess=r=>{t(r.target.result)},n.onerror=r=>{e(r.target.error)}})}async function Yd(){try{return er==null&&(er=await Gd()),new Promise((t,e)=>{if(er==null)return e("indexDB is null");const o=er.transaction([Cr],"readonly").objectStore(Cr).get(Zd);o.onsuccess=()=>{o.result?t(o.result.value):t(void 0)},o.onerror=()=>e(o.error)})}catch(t){console.error("Error while reading from database:",t)}}async function Jd(){try{return await Yd()}catch(t){console.error("Error retrieving data from IndexedDB:",t)}}const Ee=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Ne=Object.keys,Me=Array.isArray;function We(t,e){return typeof e!="object"||Ne(e).forEach(function(n){t[n]=e[n]}),t}typeof Promise>"u"||Ee.Promise||(Ee.Promise=Promise);const Rn=Object.getPrototypeOf,Xd={}.hasOwnProperty;function Ze(t,e){return Xd.call(t,e)}function fn(t,e){typeof e=="function"&&(e=e(Rn(t))),(typeof Reflect>"u"?Ne:Reflect.ownKeys)(e).forEach(n=>{mt(t,n,e[n])})}const xi=Object.defineProperty;function mt(t,e,n,r){xi(t,e,We(n&&Ze(n,"get")&&typeof n.get=="function"?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function on(t){return{from:function(e){return t.prototype=Object.create(e.prototype),mt(t.prototype,"constructor",t),{extend:fn.bind(null,t.prototype)}}}}const Qd=Object.getOwnPropertyDescriptor;function Is(t,e){let n;return Qd(t,e)||(n=Rn(t))&&Is(n,e)}const ef=[].slice;function Sr(t,e,n){return ef.call(t,e,n)}function Ei(t,e){return e(t)}function _n(t){if(!t)throw new Error("Assertion Failed")}function Ci(t){Ee.setImmediate?setImmediate(t):setTimeout(t,0)}function Si(t,e){return t.reduce((n,r,o)=>{var s=e(r,o);return s&&(n[s[0]]=s[1]),n},{})}function yt(t,e){if(Ze(t,e))return t[e];if(!e)return t;if(typeof e!="string"){for(var n=[],r=0,o=e.length;r["Int","Uint","Float"].map(e=>e+t+"Array")))).filter(t=>Ee[t]),nf=Di.map(t=>Ee[t]);Si(Di,t=>[t,!0]);let kt=null;function Vn(t){kt=typeof WeakMap<"u"&&new WeakMap;const e=Oo(t);return kt=null,e}function Oo(t){if(!t||typeof t!="object")return t;let e=kt&&kt.get(t);if(e)return e;if(Me(t)){e=[],kt&&kt.set(t,e);for(var n=0,r=t.length;n=0)e=t;else{const s=Rn(t);for(var o in e=s===Object.prototype?{}:Object.create(s),kt&&kt.set(t,e),t)Ze(t,o)&&(e[o]=Oo(t[o]))}return e}const{toString:rf}={};function Io(t){return rf.call(t).slice(8,-1)}const Do=typeof Symbol<"u"?Symbol.iterator:"@@iterator",of=typeof Do=="symbol"?function(t){var e;return t!=null&&(e=t[Do])&&e.apply(t)}:function(){return null},tn={};function ht(t){var e,n,r,o;if(arguments.length===1){if(Me(t))return t.slice();if(this===tn&&typeof t=="string")return[t];if(o=of(t)){for(n=[];!(r=o.next()).done;)n.push(r.value);return n}if(t==null)return[t];if(typeof(e=t.length)=="number"){for(n=new Array(e);e--;)n[e]=t[e];return n}return[t]}for(e=arguments.length,n=new Array(e);e--;)n[e]=arguments[e];return n}const Ds=typeof Symbol<"u"?t=>t[Symbol.toStringTag]==="AsyncFunction":()=>!1;var ct=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Pi(t,e){ct=t,ji=e}var ji=()=>!0;const sf=!new Error("").stack;function Gt(){if(sf)try{throw Gt.arguments,new Error}catch(t){return t}return new Error}function Po(t,e){var n=t.stack;return n?(e=e||0,n.indexOf(t.name)===0&&(e+=(t.name+t.message).split(` +`).length),n.split(` +`).slice(e).filter(ji).map(r=>` +`+r).join("")):""}var Ai=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Ps=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(Ai),af={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function sn(t,e){this._e=Gt(),this.name=t,this.message=e}function Ni(t,e){return t+". Errors: "+Object.keys(e).map(n=>e[n].toString()).filter((n,r,o)=>o.indexOf(n)===r).join(` +`)}function Or(t,e,n,r){this._e=Gt(),this.failures=e,this.failedKeys=r,this.successCount=n,this.message=Ni(t,e)}function Sn(t,e){this._e=Gt(),this.name="BulkError",this.failures=Object.keys(e).map(n=>e[n]),this.failuresByPos=e,this.message=Ni(t,e)}on(sn).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+Po(this._e,2))}},toString:function(){return this.name+": "+this.message}}),on(Or).from(sn),on(Sn).from(sn);var js=Ps.reduce((t,e)=>(t[e]=e+"Error",t),{});const lf=sn;var le=Ps.reduce((t,e)=>{var n=e+"Error";function r(o,s){this._e=Gt(),this.name=n,o?typeof o=="string"?(this.message=`${o}${s?` + `+s:""}`,this.inner=s||null):typeof o=="object"&&(this.message=`${o.name} ${o.message}`,this.inner=o):(this.message=af[e]||n,this.inner=null)}return on(r).from(lf),t[e]=r,t},{});le.Syntax=SyntaxError,le.Type=TypeError,le.Range=RangeError;var ia=Ai.reduce((t,e)=>(t[e+"Error"]=le[e],t),{}),dr=Ps.reduce((t,e)=>(["Syntax","Type","Range"].indexOf(e)===-1&&(t[e+"Error"]=le[e]),t),{});function be(){}function Tn(t){return t}function cf(t,e){return t==null||t===Tn?e:function(n){return e(t(n))}}function Vt(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function uf(t,e){return t===be?e:function(){var n=t.apply(this,arguments);n!==void 0&&(arguments[0]=n);var r=this.onsuccess,o=this.onerror;this.onsuccess=null,this.onerror=null;var s=e.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?Vt(r,this.onsuccess):r),o&&(this.onerror=this.onerror?Vt(o,this.onerror):o),s!==void 0?s:n}}function df(t,e){return t===be?e:function(){t.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,e.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?Vt(n,this.onsuccess):n),r&&(this.onerror=this.onerror?Vt(r,this.onerror):r)}}function ff(t,e){return t===be?e:function(n){var r=t.apply(this,arguments);We(n,r);var o=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var i=e.apply(this,arguments);return o&&(this.onsuccess=this.onsuccess?Vt(o,this.onsuccess):o),s&&(this.onerror=this.onerror?Vt(s,this.onerror):s),r===void 0?i===void 0?void 0:i:We(r,i)}}function hf(t,e){return t===be?e:function(){return e.apply(this,arguments)!==!1&&t.apply(this,arguments)}}function As(t,e){return t===be?e:function(){var n=t.apply(this,arguments);if(n&&typeof n.then=="function"){for(var r=this,o=arguments.length,s=new Array(o);o--;)s[o]=arguments[o];return n.then(function(){return e.apply(r,s)})}return e.apply(this,arguments)}}dr.ModifyError=Or,dr.DexieError=sn,dr.BulkError=Sn;var Bn={};const Fi=100,[jo,Ir,Ao]=typeof Promise>"u"?[]:(()=>{let t=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[t,Rn(t),t];const e=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[e,Rn(e),t]})(),Ri=Ir&&Ir.then,fr=jo&&jo.constructor,Ns=!!Ao;var No=!1,pf=Ao?()=>{Ao.then(tr)}:Ee.setImmediate?setImmediate.bind(null,tr):Ee.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver(()=>{tr(),t=null}).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(tr,0)},On=function(t,e){kn.push([t,e]),Dr&&(pf(),Dr=!1)},Fo=!0,Dr=!0,Wt=[],hr=[],Ro=null,To=Tn,an={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:ua,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach(t=>{try{ua(t[0],t[1])}catch{}})}},ae=an,kn=[],Ut=0,pr=[];function oe(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=be,this._lib=!1;var e=this._PSD=ae;if(ct&&(this._stackHolder=Gt(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==Bn)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(this._state===!1&&Mo(this,this._value))}this._state=null,this._value=null,++e.ref,Bi(this,t)}const Bo={get:function(){var t=ae,e=Pr;function n(r,o){var s=!t.global&&(t!==ae||e!==Pr);const i=s&&!gt();var a=new oe((l,u)=>{Fs(this,new Ti(jr(r,t,s,i),jr(o,t,s,i),l,u,t))});return ct&&Li(a,this),a}return n.prototype=Bn,n},set:function(t){mt(this,"then",t&&t.prototype===Bn?Bo:{get:function(){return t},set:Bo.set})}};function Ti(t,e,n,r,o){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof e=="function"?e:null,this.resolve=n,this.reject=r,this.psd=o}function Bi(t,e){try{e(n=>{if(t._state===null){if(n===t)throw new TypeError("A promise cannot be resolved with itself.");var r=t._lib&&Zn();n&&typeof n.then=="function"?Bi(t,(o,s)=>{n instanceof oe?n._then(o,s):n.then(o,s)}):(t._state=!0,t._value=n,Mi(t)),r&&Gn()}},Mo.bind(null,t))}catch(n){Mo(t,n)}}function Mo(t,e){if(hr.push(e),t._state===null){var n=t._lib&&Zn();e=To(e),t._state=!1,t._value=e,ct&&e!==null&&typeof e=="object"&&!e._promise&&function(r,o,s){try{r.apply(null,s)}catch(i){o&&o(i)}}(()=>{var r=Is(e,"stack");e._promise=t,mt(e,"stack",{get:()=>No?r&&(r.get?r.get.apply(e):r.value):t.stack})}),function(r){Wt.some(o=>o._value===r._value)||Wt.push(r)}(t),Mi(t),n&&Gn()}}function Mi(t){var e=t._listeners;t._listeners=[];for(var n=0,r=e.length;n{--Ut==0&&Rs()},[]))}function Fs(t,e){if(t._state!==null){var n=t._state?e.onFulfilled:e.onRejected;if(n===null)return(t._state?e.resolve:e.reject)(t._value);++e.psd.ref,++Ut,On(mf,[n,t,e])}else t._listeners.push(e)}function mf(t,e,n){try{Ro=e;var r,o=e._value;e._state?r=t(o):(hr.length&&(hr=[]),r=t(o),hr.indexOf(o)===-1&&function(s){for(var i=Wt.length;i;)if(Wt[--i]._value===s._value)return void Wt.splice(i,1)}(e)),n.resolve(r)}catch(s){n.reject(s)}finally{Ro=null,--Ut==0&&Rs(),--n.psd.ref||n.psd.finalize()}}function zi(t,e,n){if(e.length===n)return e;var r="";if(t._state===!1){var o,s,i=t._value;i!=null?(o=i.name||"Error",s=i.message||i,r=Po(i,0)):(o=i,s=""),e.push(o+(s?": "+s:"")+r)}return ct&&((r=Po(t._stackHolder,2))&&e.indexOf(r)===-1&&e.push(r),t._prev&&zi(t._prev,e,n)),e}function Li(t,e){var n=e?e._numPrev+1:0;n<100&&(t._prev=e,t._numPrev=n)}function tr(){Zn()&&Gn()}function Zn(){var t=Fo;return Fo=!1,Dr=!1,t}function Gn(){var t,e,n;do for(;kn.length>0;)for(t=kn,kn=[],n=t.length,e=0;e0);Fo=!0,Dr=!0}function Rs(){var t=Wt;Wt=[],t.forEach(r=>{r._PSD.onunhandled.call(null,r._value,r)});for(var e=pr.slice(0),n=e.length;n;)e[--n]()}function nr(t){return new oe(Bn,!1,t)}function Ce(t,e){var n=ae;return function(){var r=Zn(),o=ae;try{return It(n,!0),t.apply(this,arguments)}catch(s){e&&e(s)}finally{It(o,!1),r&&Gn()}}}fn(oe.prototype,{then:Bo,_then:function(t,e){Fs(this,new Ti(null,null,t,e,ae))},catch:function(t){if(arguments.length===1)return this.then(null,t);var e=arguments[0],n=arguments[1];return typeof e=="function"?this.then(null,r=>r instanceof e?n(r):nr(r)):this.then(null,r=>r&&r.name===e?n(r):nr(r))},finally:function(t){return this.then(e=>(t(),e),e=>(t(),nr(e)))},stack:{get:function(){if(this._stack)return this._stack;try{No=!0;var t=zi(this,[],20).join(` +From previous: `);return this._state!==null&&(this._stack=t),t}finally{No=!1}}},timeout:function(t,e){return t<1/0?new oe((n,r)=>{var o=setTimeout(()=>r(new le.Timeout(e)),t);this.then(n,r).finally(clearTimeout.bind(null,o))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&mt(oe.prototype,Symbol.toStringTag,"Dexie.Promise"),an.env=Wi(),fn(oe,{all:function(){var t=ht.apply(null,arguments).map(rr);return new oe(function(e,n){t.length===0&&e([]);var r=t.length;t.forEach((o,s)=>oe.resolve(o).then(i=>{t[s]=i,--r||e(t)},n))})},resolve:t=>{if(t instanceof oe)return t;if(t&&typeof t.then=="function")return new oe((n,r)=>{t.then(n,r)});var e=new oe(Bn,!0,t);return Li(e,Ro),e},reject:nr,race:function(){var t=ht.apply(null,arguments).map(rr);return new oe((e,n)=>{t.map(r=>oe.resolve(r).then(e,n))})},PSD:{get:()=>ae,set:t=>ae=t},totalEchoes:{get:()=>Pr},newPSD:Ot,usePSD:mn,scheduler:{get:()=>On,set:t=>{On=t}},rejectionMapper:{get:()=>To,set:t=>{To=t}},follow:(t,e)=>new oe((n,r)=>Ot((o,s)=>{var i=ae;i.unhandleds=[],i.onunhandled=s,i.finalize=Vt(function(){(function(a){function l(){a(),pr.splice(pr.indexOf(l),1)}pr.push(l),++Ut,On(()=>{--Ut==0&&Rs()},[])})(()=>{this.unhandleds.length===0?o():s(this.unhandleds[0])})},i.finalize),t()},e,n,r))}),fr&&(fr.allSettled&&mt(oe,"allSettled",function(){const t=ht.apply(null,arguments).map(rr);return new oe(e=>{t.length===0&&e([]);let n=t.length;const r=new Array(n);t.forEach((o,s)=>oe.resolve(o).then(i=>r[s]={status:"fulfilled",value:i},i=>r[s]={status:"rejected",reason:i}).then(()=>--n||e(r)))})}),fr.any&&typeof AggregateError<"u"&&mt(oe,"any",function(){const t=ht.apply(null,arguments).map(rr);return new oe((e,n)=>{t.length===0&&n(new AggregateError([]));let r=t.length;const o=new Array(r);t.forEach((s,i)=>oe.resolve(s).then(a=>e(a),a=>{o[i]=a,--r||n(new AggregateError(o))}))})}));const Be={awaits:0,echoes:0,id:0};var yf=0,mr=[],lo=0,Pr=0,vf=0;function Ot(t,e,n,r){var o=ae,s=Object.create(o);s.parent=o,s.ref=0,s.global=!1,s.id=++vf;var i=an.env;s.env=Ns?{Promise:oe,PromiseProp:{value:oe,configurable:!0,writable:!0},all:oe.all,race:oe.race,allSettled:oe.allSettled,any:oe.any,resolve:oe.resolve,reject:oe.reject,nthen:la(i.nthen,s),gthen:la(i.gthen,s)}:{},e&&We(s,e),++o.ref,s.finalize=function(){--this.parent.ref||this.parent.finalize()};var a=mn(s,t,n,r);return s.ref===0&&s.finalize(),a}function pn(){return Be.id||(Be.id=++yf),++Be.awaits,Be.echoes+=Fi,Be.id}function gt(){return!!Be.awaits&&(--Be.awaits==0&&(Be.id=0),Be.echoes=Be.awaits*Fi,!0)}function rr(t){return Be.echoes&&t&&t.constructor===fr?(pn(),t.then(e=>(gt(),e),e=>(gt(),Fe(e)))):t}function gf(t){++Pr,Be.echoes&&--Be.echoes!=0||(Be.echoes=Be.id=0),mr.push(ae),It(t,!0)}function wf(){var t=mr[mr.length-1];mr.pop(),It(t,!1)}function It(t,e){var n=ae;if((e?!Be.echoes||lo++&&t===ae:!lo||--lo&&t===ae)||Ui(e?gf.bind(null,t):wf),t!==ae&&(ae=t,n===an&&(an.env=Wi()),Ns)){var r=an.env.Promise,o=t.env;Ir.then=o.nthen,r.prototype.then=o.gthen,(n.global||t.global)&&(Object.defineProperty(Ee,"Promise",o.PromiseProp),r.all=o.all,r.race=o.race,r.resolve=o.resolve,r.reject=o.reject,o.allSettled&&(r.allSettled=o.allSettled),o.any&&(r.any=o.any))}}function Wi(){var t=Ee.Promise;return Ns?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(Ee,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:Ir.then,gthen:t.prototype.then}:{}}function mn(t,e,n,r,o){var s=ae;try{return It(t,!0),e(n,r,o)}finally{It(s,!1)}}function Ui(t){Ri.call(jo,t)}function jr(t,e,n,r){return typeof t!="function"?t:function(){var o=ae;n&&pn(),It(e,!0);try{return t.apply(this,arguments)}finally{It(o,!1),r&&Ui(gt)}}}function la(t,e){return function(n,r){return t.call(this,jr(n,e),jr(r,e))}}(""+Ri).indexOf("[native code]")===-1&&(pn=gt=be);const ca="unhandledrejection";function ua(t,e){var n;try{n=e.onuncatched(t)}catch{}if(n!==!1)try{var r,o={promise:e,reason:t};if(Ee.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(ca,!0,!0),We(r,o)):Ee.CustomEvent&&We(r=new CustomEvent(ca,{detail:o}),o),r&&Ee.dispatchEvent&&(dispatchEvent(r),!Ee.PromiseRejectionEvent&&Ee.onunhandledrejection))try{Ee.onunhandledrejection(r)}catch{}ct&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var Fe=oe.reject;function zo(t,e,n,r){if(t.idbdb&&(t._state.openComplete||ae.letThrough||t._vip)){var o=t._createTransaction(e,n,t._dbSchema);try{o.create(),t._state.PR1398_maxLoop=3}catch(s){return s.name===js.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>zo(t,e,n,r))):Fe(s)}return o._promise(e,(s,i)=>Ot(()=>(ae.trans=o,r(s,i,o)))).then(s=>o._completion.then(()=>s))}if(t._state.openComplete)return Fe(new le.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return Fe(new le.DatabaseClosed);t.open().catch(be)}return t._state.dbReadyPromise.then(()=>zo(t,e,n,r))}const da="3.2.4",Tt="￿",Lo=-1/0,dt="Invalid key provided. Keys must be of type string, number, Date or Array.",Ki="String expected.",In=[],Qr=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),bf=Qr,_f=Qr,$i=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),eo="__dbnames",co="readonly",uo="readwrite";function Zt(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}const qi={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function or(t){return typeof t!="string"||/\./.test(t)?e=>e:e=>(e[t]===void 0&&t in e&&delete(e=Vn(e))[t],e)}class kf{_trans(e,n,r){const o=this._tx||ae.trans,s=this.name;function i(l,u,c){if(!c.schema[s])throw new le.NotFound("Table "+s+" not part of transaction");return n(c.idbtrans,c)}const a=Zn();try{return o&&o.db===this.db?o===ae.trans?o._promise(e,i,r):Ot(()=>o._promise(e,i,r),{trans:o,transless:ae.transless||ae}):zo(this.db,e,[this.name],i)}finally{a&&Gn()}}get(e,n){return e&&e.constructor===Object?this.where(e).first(n):this._trans("readonly",r=>this.core.get({trans:r,key:e}).then(o=>this.hook.reading.fire(o))).then(n)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(Me(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);const n=Ne(e);if(n.length===1)return this.where(n[0]).equals(e[n[0]]);const r=this.schema.indexes.concat(this.schema.primKey).filter(u=>u.compound&&n.every(c=>u.keyPath.indexOf(c)>=0)&&u.keyPath.every(c=>n.indexOf(c)>=0))[0];if(r&&this.db._maxKey!==Tt)return this.where(r.name).equals(r.keyPath.map(u=>e[u]));!r&&ct&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:o}=this.schema,s=this.db._deps.indexedDB;function i(u,c){try{return s.cmp(u,c)===0}catch{return!1}}const[a,l]=n.reduce(([u,c],d)=>{const p=o[d],h=e[d];return[u||p,u||!p?Zt(c,p&&p.multi?b=>{const f=yt(b,d);return Me(f)&&f.some(y=>i(h,y))}:b=>i(h,yt(b,d))):c]},[null,null]);return a?this.where(a.name).equals(e[a.keyPath]).filter(l):r?this.filter(l):this.where(n).equals("")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,Me(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const n=r=>{if(!r)return r;const o=Object.create(e.prototype);for(var s in r)if(Ze(r,s))try{o[s]=r[s]}catch{}return o};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=n,this.hook("reading",n),e}defineClass(){return this.mapToClass(function(e){We(this,e)})}add(e,n){const{auto:r,keyPath:o}=this.schema.primKey;let s=e;return o&&r&&(s=or(o)(e)),this._trans("readwrite",i=>this.core.mutate({trans:i,type:"add",keys:n!=null?[n]:null,values:[s]})).then(i=>i.numFailures?oe.reject(i.failures[0]):i.lastResult).then(i=>{if(o)try{nt(e,o,i)}catch{}return i})}update(e,n){if(typeof e!="object"||Me(e))return this.where(":id").equals(e).modify(n);{const r=yt(e,this.schema.primKey.keyPath);if(r===void 0)return Fe(new le.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?Ne(n).forEach(o=>{nt(e,o,n[o])}):n(e,{value:e,primKey:r})}catch{}return this.where(":id").equals(r).modify(n)}}put(e,n){const{auto:r,keyPath:o}=this.schema.primKey;let s=e;return o&&r&&(s=or(o)(e)),this._trans("readwrite",i=>this.core.mutate({trans:i,type:"put",values:[s],keys:n!=null?[n]:null})).then(i=>i.numFailures?oe.reject(i.failures[0]):i.lastResult).then(i=>{if(o)try{nt(e,o,i)}catch{}return i})}delete(e){return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:[e]})).then(n=>n.numFailures?oe.reject(n.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:qi})).then(e=>e.numFailures?oe.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",n=>this.core.getMany({keys:e,trans:n}).then(r=>r.map(o=>this.hook.reading.fire(o))))}bulkAdd(e,n,r){const o=Array.isArray(n)?n:void 0,s=(r=r||(o?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",i=>{const{auto:a,keyPath:l}=this.schema.primKey;if(l&&o)throw new le.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(o&&o.length!==e.length)throw new le.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&a?e.map(or(l)):e;return this.core.mutate({trans:i,type:"add",keys:o,values:c,wantResults:s}).then(({numFailures:d,results:p,lastResult:h,failures:b})=>{if(d===0)return s?p:h;throw new Sn(`${this.name}.bulkAdd(): ${d} of ${u} operations failed`,b)})})}bulkPut(e,n,r){const o=Array.isArray(n)?n:void 0,s=(r=r||(o?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",i=>{const{auto:a,keyPath:l}=this.schema.primKey;if(l&&o)throw new le.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(o&&o.length!==e.length)throw new le.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&a?e.map(or(l)):e;return this.core.mutate({trans:i,type:"put",keys:o,values:c,wantResults:s}).then(({numFailures:d,results:p,lastResult:h,failures:b})=>{if(d===0)return s?p:h;throw new Sn(`${this.name}.bulkPut(): ${d} of ${u} operations failed`,b)})})}bulkDelete(e){const n=e.length;return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:e})).then(({numFailures:r,lastResult:o,failures:s})=>{if(r===0)return o;throw new Sn(`${this.name}.bulkDelete(): ${r} of ${n} operations failed`,s)})}}function Dn(t){var e={},n=function(i,a){if(a){for(var l=arguments.length,u=new Array(l-1);--l;)u[l-1]=arguments[l];return e[i].subscribe.apply(null,u),t}if(typeof i=="string")return e[i]};n.addEventType=s;for(var r=1,o=arguments.length;rZt(r(),e()):e,t.justLimit=n&&!r}function yr(t,e){if(t.isPrimKey)return e.primaryKey;const n=e.getIndexByKeyPath(t.index);if(!n)throw new le.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return n}function fa(t,e,n){const r=yr(t,e.schema);return e.openCursor({trans:n,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:r,range:t.range}})}function sr(t,e,n,r){const o=t.replayFilter?Zt(t.filter,t.replayFilter()):t.filter;if(t.or){const s={},i=(a,l,u)=>{if(!o||o(l,u,p=>l.stop(p),p=>l.fail(p))){var c=l.primaryKey,d=""+c;d==="[object ArrayBuffer]"&&(d=""+new Uint8Array(c)),Ze(s,d)||(s[d]=!0,e(a,l,u))}};return Promise.all([t.or._iterate(i,n),ha(fa(t,r,n),t.algorithm,i,!t.keysOnly&&t.valueMapper)])}return ha(fa(t,r,n),Zt(t.algorithm,o),e,!t.keysOnly&&t.valueMapper)}function ha(t,e,n,r){var o=Ce(r?(s,i,a)=>n(r(s),i,a):n);return t.then(s=>{if(s)return s.start(()=>{var i=()=>s.continue();e&&!e(s,a=>i=a,a=>{s.stop(a),i=be},a=>{s.fail(a),i=be})||o(s.value,s,a=>i=a),i()})})}function ze(t,e){try{const n=pa(t),r=pa(e);if(n!==r)return n==="Array"?1:r==="Array"?-1:n==="binary"?1:r==="binary"?-1:n==="string"?1:r==="string"?-1:n==="Date"?1:r!=="Date"?NaN:-1;switch(n){case"number":case"Date":case"string":return t>e?1:tsr(n,e,r,n.table.core))}count(e){return this._read(n=>{const r=this._ctx,o=r.table.core;if(Qt(r,!0))return o.count({trans:n,query:{index:yr(r,o.schema),range:r.range}}).then(i=>Math.min(i,r.limit));var s=0;return sr(r,()=>(++s,!1),n,o).then(()=>s)}).then(e)}sortBy(e,n){const r=e.split(".").reverse(),o=r[0],s=r.length-1;function i(u,c){return c?i(u[r[c]],c-1):u[o]}var a=this._ctx.dir==="next"?1:-1;function l(u,c){var d=i(u,s),p=i(c,s);return dp?a:0}return this.toArray(function(u){return u.sort(l)}).then(n)}toArray(e){return this._read(n=>{var r=this._ctx;if(r.dir==="next"&&Qt(r,!0)&&r.limit>0){const{valueMapper:o}=r,s=yr(r,r.table.core.schema);return r.table.core.query({trans:n,limit:r.limit,values:!0,query:{index:s,range:r.range}}).then(({result:i})=>o?i.map(o):i)}{const o=[];return sr(r,s=>o.push(s),n,r.table.core).then(()=>o)}},e)}offset(e){var n=this._ctx;return e<=0||(n.offset+=e,Qt(n)?ho(n,()=>{var r=e;return(o,s)=>r===0||(r===1?(--r,!1):(s(()=>{o.advance(r),r=0}),!1))}):ho(n,()=>{var r=e;return()=>--r<0})),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),ho(this._ctx,()=>{var n=e;return function(r,o,s){return--n<=0&&o(s),n>=0}},!0),this}until(e,n){return fo(this._ctx,function(r,o,s){return!e(r.value)||(o(s),n)}),this}first(e){return this.limit(1).toArray(function(n){return n[0]}).then(e)}last(e){return this.reverse().first(e)}filter(e){var n,r;return fo(this._ctx,function(o){return e(o.value)}),n=this._ctx,r=e,n.isMatch=Zt(n.isMatch,r),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,o){e(o.key,o)})}eachUniqueKey(e){return this._ctx.unique="unique",this.eachKey(e)}eachPrimaryKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,o){e(o.primaryKey,o)})}keys(e){var n=this._ctx;n.keysOnly=!n.isMatch;var r=[];return this.each(function(o,s){r.push(s.key)}).then(function(){return r}).then(e)}primaryKeys(e){var n=this._ctx;if(n.dir==="next"&&Qt(n,!0)&&n.limit>0)return this._read(o=>{var s=yr(n,n.table.core.schema);return n.table.core.query({trans:o,values:!1,limit:n.limit,query:{index:s,range:n.range}})}).then(({result:o})=>o).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(o,s){r.push(s.primaryKey)}).then(function(){return r}).then(e)}uniqueKeys(e){return this._ctx.unique="unique",this.keys(e)}firstKey(e){return this.limit(1).keys(function(n){return n[0]}).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,n=e.index&&e.table.schema.idxByName[e.index];if(!n||!n.multi)return this;var r={};return fo(this._ctx,function(o){var s=o.primaryKey.toString(),i=Ze(r,s);return r[s]=!0,!i}),this}modify(e){var n=this._ctx;return this._write(r=>{var o;if(typeof e=="function")o=e;else{var s=Ne(e),i=s.length;o=function(f){for(var y=!1,m=0;m{const{failures:m,numFailures:w}=y;p+=f-w;for(let _ of Ne(m))d.push(m[_])};return this.clone().primaryKeys().then(f=>{const y=m=>{const w=Math.min(c,f.length-m);return a.getMany({trans:r,keys:f.slice(m,m+w),cache:"immutable"}).then(_=>{const k=[],x=[],I=l?[]:null,E=[];for(let D=0;D0&&a.mutate({trans:r,type:"add",values:k}).then(D=>{for(let R in D.failures)E.splice(parseInt(R),1);b(k.length,D)})).then(()=>(x.length>0||N&&typeof e=="object")&&a.mutate({trans:r,type:"put",keys:I,values:x,criteria:N,changeSpec:typeof e!="function"&&e}).then(D=>b(x.length,D))).then(()=>(E.length>0||N&&e===po)&&a.mutate({trans:r,type:"delete",keys:E,criteria:N}).then(D=>b(E.length,D))).then(()=>f.length>m+w&&y(m+c))})};return y(0).then(()=>{if(d.length>0)throw new Or("Error modifying one or more objects",d,p,h);return f.length})})})}delete(){var e=this._ctx,n=e.range;return Qt(e)&&(e.isPrimKey&&!_f||n.type===3)?this._write(r=>{const{primaryKey:o}=e.table.core.schema,s=n;return e.table.core.count({trans:r,query:{index:o,range:s}}).then(i=>e.table.core.mutate({trans:r,type:"deleteRange",range:s}).then(({failures:a,lastResult:l,results:u,numFailures:c})=>{if(c)throw new Or("Could not delete some values",Object.keys(a).map(d=>a[d]),i-c);return i-c}))}):this.modify(po)}}const po=(t,e)=>e.value=null;function Ef(t,e){return te?-1:t===e?0:1}function $e(t,e,n){var r=t instanceof Vi?new t.Collection(t):t;return r._ctx.error=n?new n(e):new TypeError(e),r}function en(t){return new t.Collection(t,()=>Hi("")).limit(0)}function Sf(t,e,n,r,o,s){for(var i=Math.min(t.length,r.length),a=-1,l=0;l=0?t.substr(0,a)+e[a]+n.substr(a+1):null;o(t[l],u)<0&&(a=l)}return itypeof f=="string"))return $e(t,Ki);function p(f){o=function(m){return m==="next"?w=>w.toUpperCase():w=>w.toLowerCase()}(f),s=function(m){return m==="next"?w=>w.toLowerCase():w=>w.toUpperCase()}(f),i=f==="next"?Ef:Cf;var y=n.map(function(m){return{lower:s(m),upper:o(m)}}).sort(function(m,w){return i(m.lower,w.lower)});a=y.map(function(m){return m.upper}),l=y.map(function(m){return m.lower}),u=f,c=f==="next"?"":r}p("next");var h=new t.Collection(t,()=>_t(a[0],l[d-1]+r));h._ondirectionchange=function(f){p(f)};var b=0;return h._addAlgorithm(function(f,y,m){var w=f.key;if(typeof w!="string")return!1;var _=s(w);if(e(_,l,b))return!0;for(var k=null,x=b;x0)&&(k=I)}return y(k!==null?function(){f.continue(k+c)}:m),!1}),h}function _t(t,e,n,r){return{type:2,lower:t,upper:e,lowerOpen:n,upperOpen:r}}function Hi(t){return{type:1,lower:t,upper:t}}class Vi{get Collection(){return this._ctx.table.db.Collection}between(e,n,r,o){r=r!==!1,o=o===!0;try{return this._cmp(e,n)>0||this._cmp(e,n)===0&&(r||o)&&(!r||!o)?en(this):new this.Collection(this,()=>_t(e,n,!r,!o))}catch{return $e(this,dt)}}equals(e){return e==null?$e(this,dt):new this.Collection(this,()=>Hi(e))}above(e){return e==null?$e(this,dt):new this.Collection(this,()=>_t(e,void 0,!0))}aboveOrEqual(e){return e==null?$e(this,dt):new this.Collection(this,()=>_t(e,void 0,!1))}below(e){return e==null?$e(this,dt):new this.Collection(this,()=>_t(void 0,e,!1,!0))}belowOrEqual(e){return e==null?$e(this,dt):new this.Collection(this,()=>_t(void 0,e))}startsWith(e){return typeof e!="string"?$e(this,Ki):this.between(e,e+Tt,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):ar(this,(n,r)=>n.indexOf(r[0])===0,[e],Tt)}equalsIgnoreCase(e){return ar(this,(n,r)=>n===r[0],[e],"")}anyOfIgnoreCase(){var e=ht.apply(tn,arguments);return e.length===0?en(this):ar(this,(n,r)=>r.indexOf(n)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=ht.apply(tn,arguments);return e.length===0?en(this):ar(this,(n,r)=>r.some(o=>n.indexOf(o)===0),e,Tt)}anyOf(){const e=ht.apply(tn,arguments);let n=this._cmp;try{e.sort(n)}catch{return $e(this,dt)}if(e.length===0)return en(this);const r=new this.Collection(this,()=>_t(e[0],e[e.length-1]));r._ondirectionchange=s=>{n=s==="next"?this._ascending:this._descending,e.sort(n)};let o=0;return r._addAlgorithm((s,i,a)=>{const l=s.key;for(;n(l,e[o])>0;)if(++o,o===e.length)return i(a),!1;return n(l,e[o])===0||(i(()=>{s.continue(e[o])}),!1)}),r}notEqual(e){return this.inAnyRange([[Lo,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=ht.apply(tn,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return $e(this,dt)}const n=e.reduce((r,o)=>r?r.concat([[r[r.length-1][1],o]]):[[Lo,o]],null);return n.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(n,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,n){const r=this._cmp,o=this._ascending,s=this._descending,i=this._min,a=this._max;if(e.length===0)return en(this);if(!e.every(w=>w[0]!==void 0&&w[1]!==void 0&&o(w[0],w[1])<=0))return $e(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",le.InvalidArgument);const l=!n||n.includeLowers!==!1,u=n&&n.includeUppers===!0;let c,d=o;function p(w,_){return d(w[0],_[0])}try{c=e.reduce(function(w,_){let k=0,x=w.length;for(;k0){I[0]=i(I[0],_[0]),I[1]=a(I[1],_[1]);break}}return k===x&&w.push(_),w},[]),c.sort(p)}catch{return $e(this,dt)}let h=0;const b=u?w=>o(w,c[h][1])>0:w=>o(w,c[h][1])>=0,f=l?w=>s(w,c[h][0])>0:w=>s(w,c[h][0])>=0;let y=b;const m=new this.Collection(this,()=>_t(c[0][0],c[c.length-1][1],!l,!u));return m._ondirectionchange=w=>{w==="next"?(y=b,d=o):(y=f,d=s),c.sort(p)},m._addAlgorithm((w,_,k)=>{for(var x=w.key;y(x);)if(++h,h===c.length)return _(k),!1;return!!function(I){return!b(I)&&!f(I)}(x)||(this._cmp(x,c[h][1])===0||this._cmp(x,c[h][0])===0||_(()=>{d===o?w.continue(c[h][0]):w.continue(c[h][1])}),!1)}),m}startsWithAnyOf(){const e=ht.apply(tn,arguments);return e.every(n=>typeof n=="string")?e.length===0?en(this):this.inAnyRange(e.map(n=>[n,n+Tt])):$e(this,"startsWithAnyOf() only works with strings")}}function st(t){return Ce(function(e){return Mn(e),t(e.target.error),!1})}function Mn(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const zn="storagemutated",Et="x-storagemutated-1",Dt=Dn(null,zn);class Of{_lock(){return _n(!ae.global),++this._reculock,this._reculock!==1||ae.global||(ae.lockOwnerFor=this),this}_unlock(){if(_n(!ae.global),--this._reculock==0)for(ae.global||(ae.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{mn(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&ae.lockOwnerFor!==this}create(e){if(!this.mode)return this;const n=this.db.idbdb,r=this.db._state.dbOpenError;if(_n(!this.idbtrans),!e&&!n)switch(r&&r.name){case"DatabaseClosedError":throw new le.DatabaseClosed(r);case"MissingAPIError":throw new le.MissingAPI(r.message,r);default:throw new le.OpenFailed(r)}if(!this.active)throw new le.TransactionInactive;return _n(this._completion._state===null),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):n.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=Ce(o=>{Mn(o),this._reject(e.error)}),e.onabort=Ce(o=>{Mn(o),this.active&&this._reject(new le.Abort(e.error)),this.active=!1,this.on("abort").fire(o)}),e.oncomplete=Ce(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&Dt.storagemutated.fire(e.mutatedParts)}),this}_promise(e,n,r){if(e==="readwrite"&&this.mode!=="readwrite")return Fe(new le.ReadOnly("Transaction is readonly"));if(!this.active)return Fe(new le.TransactionInactive);if(this._locked())return new oe((s,i)=>{this._blockedFuncs.push([()=>{this._promise(e,n,r).then(s,i)},ae])});if(r)return Ot(()=>{var s=new oe((i,a)=>{this._lock();const l=n(i,a,this);l&&l.then&&l.then(i,a)});return s.finally(()=>this._unlock()),s._lib=!0,s});var o=new oe((s,i)=>{var a=n(s,i,this);a&&a.then&&a.then(s,i)});return o._lib=!0,o}_root(){return this.parent?this.parent._root():this}waitFor(e){var n=this._root();const r=oe.resolve(e);if(n._waitingFor)n._waitingFor=n._waitingFor.then(()=>r);else{n._waitingFor=r,n._waitingQueue=[];var o=n.idbtrans.objectStore(n.storeNames[0]);(function i(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(o.get(-1/0).onsuccess=i)})()}var s=n._waitingFor;return new oe((i,a)=>{r.then(l=>n._waitingQueue.push(Ce(i.bind(null,l))),l=>n._waitingQueue.push(Ce(a.bind(null,l)))).finally(()=>{n._waitingFor===s&&(n._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new le.Abort))}table(e){const n=this._memoizedTables||(this._memoizedTables={});if(Ze(n,e))return n[e];const r=this.schema[e];if(!r)throw new le.NotFound("Table "+e+" not part of transaction");const o=new this.db.Table(e,r,this);return o.core=this.db.core.table(e),n[e]=o,o}}function Wo(t,e,n,r,o,s,i){return{name:t,keyPath:e,unique:n,multi:r,auto:o,compound:s,src:(n&&!i?"&":"")+(r?"*":"")+(o?"++":"")+Zi(e)}}function Zi(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function Gi(t,e,n){return{name:t,primKey:e,indexes:n,mappedClass:null,idxByName:Si(n,r=>[r.name,r])}}let Ln=t=>{try{return t.only([[]]),Ln=()=>[[]],[[]]}catch{return Ln=()=>Tt,Tt}};function Uo(t){return t==null?()=>{}:typeof t=="string"?function(e){return e.split(".").length===1?r=>r[e]:r=>yt(r,e)}(t):e=>yt(e,t)}function ya(t){return[].slice.call(t)}let If=0;function Pn(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function Df(t,e,n){function r(l){if(l.type===3)return null;if(l.type===4)throw new Error("Cannot convert never type to IDBKeyRange");const{lower:u,upper:c,lowerOpen:d,upperOpen:p}=l;return u===void 0?c===void 0?null:e.upperBound(c,!!p):c===void 0?e.lowerBound(u,!!d):e.bound(u,c,!!d,!!p)}const{schema:o,hasGetAll:s}=function(l,u){const c=ya(l.objectStoreNames);return{schema:{name:l.name,tables:c.map(d=>u.objectStore(d)).map(d=>{const{keyPath:p,autoIncrement:h}=d,b=Me(p),f=p==null,y={},m={name:d.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:f,compound:b,keyPath:p,autoIncrement:h,unique:!0,extractKey:Uo(p)},indexes:ya(d.indexNames).map(w=>d.index(w)).map(w=>{const{name:_,unique:k,multiEntry:x,keyPath:I}=w,E={name:_,compound:Me(I),keyPath:I,unique:k,multiEntry:x,extractKey:Uo(I)};return y[Pn(I)]=E,E}),getIndexByKeyPath:w=>y[Pn(w)]};return y[":id"]=m.primaryKey,p!=null&&(y[Pn(p)]=m.primaryKey),m})},hasGetAll:c.length>0&&"getAll"in u.objectStore(c[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(t,n),i=o.tables.map(l=>function(u){const c=u.name;return{name:c,schema:u,mutate:function({trans:d,type:p,keys:h,values:b,range:f}){return new Promise((y,m)=>{y=Ce(y);const w=d.objectStore(c),_=w.keyPath==null,k=p==="put"||p==="add";if(!k&&p!=="delete"&&p!=="deleteRange")throw new Error("Invalid operation type: "+p);const{length:x}=h||b||{length:1};if(h&&b&&h.length!==b.length)throw new Error("Given keys array must have same length as given values array.");if(x===0)return y({numFailures:0,failures:{},results:[],lastResult:void 0});let I;const E=[],N=[];let D=0;const R=P=>{++D,Mn(P)};if(p==="deleteRange"){if(f.type===4)return y({numFailures:D,failures:N,results:[],lastResult:void 0});f.type===3?E.push(I=w.clear()):E.push(I=w.delete(r(f)))}else{const[P,B]=k?_?[b,h]:[b,null]:[h,null];if(k)for(let v=0;v{const B=P.target.result;E.forEach((v,T)=>v.error!=null&&(N[T]=v.error)),y({numFailures:D,failures:N,results:p==="delete"?h:E.map(v=>v.result),lastResult:B})};I.onerror=P=>{R(P),$(P)},I.onsuccess=$})},getMany:({trans:d,keys:p})=>new Promise((h,b)=>{h=Ce(h);const f=d.objectStore(c),y=p.length,m=new Array(y);let w,_=0,k=0;const x=E=>{const N=E.target;m[N._pos]=N.result,++k===_&&h(m)},I=st(b);for(let E=0;Enew Promise((h,b)=>{h=Ce(h);const f=d.objectStore(c).get(p);f.onsuccess=y=>h(y.target.result),f.onerror=st(b)}),query:function(d){return p=>new Promise((h,b)=>{h=Ce(h);const{trans:f,values:y,limit:m,query:w}=p,_=m===1/0?void 0:m,{index:k,range:x}=w,I=f.objectStore(c),E=k.isPrimaryKey?I:I.index(k.name),N=r(x);if(m===0)return h({result:[]});if(d){const D=y?E.getAll(N,_):E.getAllKeys(N,_);D.onsuccess=R=>h({result:R.target.result}),D.onerror=st(b)}else{let D=0;const R=y||!("openKeyCursor"in E)?E.openCursor(N):E.openKeyCursor(N),$=[];R.onsuccess=P=>{const B=R.result;return B?($.push(y?B.value:B.primaryKey),++D===m?h({result:$}):void B.continue()):h({result:$})},R.onerror=st(b)}})}(s),openCursor:function({trans:d,values:p,query:h,reverse:b,unique:f}){return new Promise((y,m)=>{y=Ce(y);const{index:w,range:_}=h,k=d.objectStore(c),x=w.isPrimaryKey?k:k.index(w.name),I=b?f?"prevunique":"prev":f?"nextunique":"next",E=p||!("openKeyCursor"in x)?x.openCursor(r(_),I):x.openKeyCursor(r(_),I);E.onerror=st(m),E.onsuccess=Ce(N=>{const D=E.result;if(!D)return void y(null);D.___id=++If,D.done=!1;const R=D.continue.bind(D);let $=D.continuePrimaryKey;$&&($=$.bind(D));const P=D.advance.bind(D),B=()=>{throw new Error("Cursor not stopped")};D.trans=d,D.stop=D.continue=D.continuePrimaryKey=D.advance=()=>{throw new Error("Cursor not started")},D.fail=Ce(m),D.next=function(){let v=1;return this.start(()=>v--?this.continue():this.stop()).then(()=>this)},D.start=v=>{const T=new Promise((A,X)=>{A=Ce(A),E.onerror=st(X),D.fail=X,D.stop=K=>{D.stop=D.continue=D.continuePrimaryKey=D.advance=B,A(K)}}),H=()=>{if(E.result)try{v()}catch(A){D.fail(A)}else D.done=!0,D.start=()=>{throw new Error("Cursor behind last entry")},D.stop()};return E.onsuccess=Ce(A=>{E.onsuccess=H,H()}),D.continue=R,D.continuePrimaryKey=$,D.advance=P,H(),T},y(D)},m)})},count({query:d,trans:p}){const{index:h,range:b}=d;return new Promise((f,y)=>{const m=p.objectStore(c),w=h.isPrimaryKey?m:m.index(h.name),_=r(b),k=_?w.count(_):w.count();k.onsuccess=Ce(x=>f(x.target.result)),k.onerror=st(y)})}}}(l)),a={};return i.forEach(l=>a[l.name]=l),{stack:"dbcore",transaction:t.transaction.bind(t),table(l){if(!a[l])throw new Error(`Table '${l}' not found`);return a[l]},MIN_KEY:-1/0,MAX_KEY:Ln(e),schema:o}}function Ko({_novip:t},e){const n=e.db,r=function(o,s,{IDBKeyRange:i,indexedDB:a},l){return{dbcore:function(c,d){return d.reduce((p,{create:h})=>({...p,...h(p)}),c)}(Df(s,i,l),o.dbcore)}}(t._middlewares,n,t._deps,e);t.core=r.dbcore,t.tables.forEach(o=>{const s=o.name;t.core.schema.tables.some(i=>i.name===s)&&(o.core=t.core.table(s),t[s]instanceof t.Table&&(t[s].core=o.core))})}function Ar({_novip:t},e,n,r){n.forEach(o=>{const s=r[o];e.forEach(i=>{const a=Is(i,o);(!a||"value"in a&&a.value===void 0)&&(i===t.Transaction.prototype||i instanceof t.Transaction?mt(i,o,{get(){return this.table(o)},set(l){xi(this,o,{value:l,writable:!0,configurable:!0,enumerable:!0})}}):i[o]=new t.Table(o,s))})})}function $o({_novip:t},e){e.forEach(n=>{for(let r in n)n[r]instanceof t.Table&&delete n[r]})}function Pf(t,e){return t._cfg.version-e._cfg.version}function jf(t,e,n,r){const o=t._dbSchema,s=t._createTransaction("readwrite",t._storeNames,o);s.create(n),s._completion.catch(r);const i=s._reject.bind(s),a=ae.transless||ae;Ot(()=>{ae.trans=s,ae.transless=a,e===0?(Ne(o).forEach(l=>{mo(n,l,o[l].primKey,o[l].indexes)}),Ko(t,n),oe.follow(()=>t.on.populate.fire(s)).catch(i)):function({_novip:l},u,c,d){const p=[],h=l._versions;let b=l._dbSchema=Ho(l,l.idbdb,d),f=!1;const y=h.filter(w=>w._cfg.version>=u);function m(){return p.length?oe.resolve(p.shift()(c.idbtrans)).then(m):oe.resolve()}return y.forEach(w=>{p.push(()=>{const _=b,k=w._cfg.dbschema;Vo(l,_,d),Vo(l,k,d),b=l._dbSchema=k;const x=Yi(_,k);x.add.forEach(E=>{mo(d,E[0],E[1].primKey,E[1].indexes)}),x.change.forEach(E=>{if(E.recreate)throw new le.Upgrade("Not yet support for changing primary key");{const N=d.objectStore(E.name);E.add.forEach(D=>qo(N,D)),E.change.forEach(D=>{N.deleteIndex(D.name),qo(N,D)}),E.del.forEach(D=>N.deleteIndex(D))}});const I=w._cfg.contentUpgrade;if(I&&w._cfg.version>u){Ko(l,d),c._memoizedTables={},f=!0;let E=Oi(k);x.del.forEach($=>{E[$]=_[$]}),$o(l,[l.Transaction.prototype]),Ar(l,[l.Transaction.prototype],Ne(E),E),c.schema=E;const N=Ds(I);let D;N&&pn();const R=oe.follow(()=>{if(D=I(c),D&&N){var $=gt.bind(null,null);D.then($,$)}});return D&&typeof D.then=="function"?oe.resolve(D):R.then(()=>D)}}),p.push(_=>{(!f||!bf)&&function(k,x){[].slice.call(x.db.objectStoreNames).forEach(I=>k[I]==null&&x.db.deleteObjectStore(I))}(w._cfg.dbschema,_),$o(l,[l.Transaction.prototype]),Ar(l,[l.Transaction.prototype],l._storeNames,l._dbSchema),c.schema=l._dbSchema})}),m().then(()=>{var w,_;_=d,Ne(w=b).forEach(k=>{_.db.objectStoreNames.contains(k)||mo(_,k,w[k].primKey,w[k].indexes)})})}(t,e,s,n).catch(i)})}function Yi(t,e){const n={del:[],add:[],change:[]};let r;for(r in t)e[r]||n.del.push(r);for(r in e){const o=t[r],s=e[r];if(o){const i={name:r,def:s,recreate:!1,del:[],add:[],change:[]};if(""+(o.primKey.keyPath||"")!=""+(s.primKey.keyPath||"")||o.primKey.auto!==s.primKey.auto&&!Qr)i.recreate=!0,n.change.push(i);else{const a=o.idxByName,l=s.idxByName;let u;for(u in a)l[u]||i.del.push(u);for(u in l){const c=a[u],d=l[u];c?c.src!==d.src&&i.change.push(d):i.add.push(d)}(i.del.length>0||i.add.length>0||i.change.length>0)&&n.change.push(i)}}else n.add.push([r,s])}return n}function mo(t,e,n,r){const o=t.db.createObjectStore(e,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach(s=>qo(o,s)),o}function qo(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function Ho(t,e,n){const r={};return Sr(e.objectStoreNames,0).forEach(o=>{const s=n.objectStore(o);let i=s.keyPath;const a=Wo(Zi(i),i||"",!1,!1,!!s.autoIncrement,i&&typeof i!="string",!0),l=[];for(let c=0;c{if(e[r]!==null){var o=e[r].split(",").map((i,a)=>{const l=(i=i.trim()).replace(/([&*]|\+\+)/g,""),u=/^\[/.test(l)?l.match(/^\[(.*)\]$/)[1].split("+"):l;return Wo(l,u||null,/\&/.test(i),/\*/.test(i),/\+\+/.test(i),Me(u),a===0)}),s=o.shift();if(s.multi)throw new le.Schema("Primary key cannot be multi-valued");o.forEach(i=>{if(i.auto)throw new le.Schema("Only primary key can be marked as autoIncrement (++)");if(!i.keyPath)throw new le.Schema("Index must have a name and cannot be an empty string")}),n[r]=Gi(r,s,o)}})}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?We(this._cfg.storesSource,e):e;const r=n._versions,o={};let s={};return r.forEach(i=>{We(o,i._cfg.storesSource),s=i._cfg.dbschema={},i._parseStoresSpec(o,s)}),n._dbSchema=s,$o(n,[n._allTables,n,n.Transaction.prototype]),Ar(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],Ne(s),s),n._storeNames=Ne(s),this}upgrade(e){return this._cfg.contentUpgrade=As(this._cfg.contentUpgrade||be,e),this}}function Ts(t,e){let n=t._dbNamesDB;return n||(n=t._dbNamesDB=new Kt(eo,{addons:[],indexedDB:t,IDBKeyRange:e}),n.version(1).stores({dbnames:"name"})),n.table("dbnames")}function Bs(t){return t&&typeof t.databases=="function"}function Zo(t){return Ot(function(){return ae.letThrough=!0,t()})}function Nf(){var t;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(e){var n=function(){return indexedDB.databases().finally(e)};t=setInterval(n,100),n()}).finally(function(){return clearInterval(t)}):Promise.resolve()}function Ff(t){const e=t._state,{indexedDB:n}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?Fe(e.dbOpenError):t);ct&&(e.openCanceller._stackHolder=Gt()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;const r=e.openCanceller;function o(){if(e.openCanceller!==r)throw new le.DatabaseClosed("db.open() was cancelled")}let s=e.dbReadyResolve,i=null,a=!1;return oe.race([r,(typeof navigator>"u"?oe.resolve():Nf()).then(()=>new oe((l,u)=>{if(o(),!n)throw new le.MissingAPI;const c=t.name,d=e.autoSchema?n.open(c):n.open(c,Math.round(10*t.verno));if(!d)throw new le.MissingAPI;d.onerror=st(u),d.onblocked=Ce(t._fireOnBlocked),d.onupgradeneeded=Ce(p=>{if(i=d.transaction,e.autoSchema&&!t._options.allowEmptyDB){d.onerror=Mn,i.abort(),d.result.close();const b=n.deleteDatabase(c);b.onsuccess=b.onerror=Ce(()=>{u(new le.NoSuchDatabase(`Database ${c} doesnt exist`))})}else{i.onerror=st(u);var h=p.oldVersion>Math.pow(2,62)?0:p.oldVersion;a=h<1,t._novip.idbdb=d.result,jf(t,h/10,i,u)}},u),d.onsuccess=Ce(()=>{i=null;const p=t._novip.idbdb=d.result,h=Sr(p.objectStoreNames);if(h.length>0)try{const f=p.transaction((b=h).length===1?b[0]:b,"readonly");e.autoSchema?function({_novip:y},m,w){y.verno=m.version/10;const _=y._dbSchema=Ho(0,m,w);y._storeNames=Sr(m.objectStoreNames,0),Ar(y,[y._allTables],Ne(_),_)}(t,p,f):(Vo(t,t._dbSchema,f),function(y,m){const w=Yi(Ho(0,y.idbdb,m),y._dbSchema);return!(w.add.length||w.change.some(_=>_.add.length||_.change.length))}(t,f)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),Ko(t,f)}catch{}var b;In.push(t),p.onversionchange=Ce(f=>{e.vcFired=!0,t.on("versionchange").fire(f)}),p.onclose=Ce(f=>{t.on("close").fire(f)}),a&&function({indexedDB:f,IDBKeyRange:y},m){!Bs(f)&&m!==eo&&Ts(f,y).put({name:m}).catch(be)}(t._deps,c),l()},u)}))]).then(()=>(o(),e.onReadyBeingFired=[],oe.resolve(Zo(()=>t.on.ready.fire(t.vip))).then(function l(){if(e.onReadyBeingFired.length>0){let u=e.onReadyBeingFired.reduce(As,be);return e.onReadyBeingFired=[],oe.resolve(Zo(()=>u(t.vip))).then(l)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(l=>{e.dbOpenError=l;try{i&&i.abort()}catch{}return r===e.openCanceller&&t._close(),Fe(l)}).finally(()=>{e.openComplete=!0,s()})}function Go(t){var e=s=>t.next(s),n=o(e),r=o(s=>t.throw(s));function o(s){return i=>{var a=s(i),l=a.value;return a.done?l:l&&typeof l.then=="function"?l.then(n,r):Me(l)?Promise.all(l).then(n,r):n(l)}}return o(e)()}function Rf(t,e,n){var r=arguments.length;if(r<2)throw new le.InvalidArgument("Too few arguments");for(var o=new Array(r-1);--r;)o[r-1]=arguments[r];return n=o.pop(),[t,Ii(o),n]}function Ji(t,e,n,r,o){return oe.resolve().then(()=>{const s=ae.transless||ae,i=t._createTransaction(e,n,t._dbSchema,r),a={trans:i,transless:s};if(r)i.idbtrans=r.idbtrans;else try{i.create(),t._state.PR1398_maxLoop=3}catch(d){return d.name===js.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>Ji(t,e,n,null,o))):Fe(d)}const l=Ds(o);let u;l&&pn();const c=oe.follow(()=>{if(u=o.call(i,i),u)if(l){var d=gt.bind(null,null);u.then(d,d)}else typeof u.next=="function"&&typeof u.throw=="function"&&(u=Go(u))},a);return(u&&typeof u.then=="function"?oe.resolve(u).then(d=>i.active?d:Fe(new le.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):c.then(()=>u)).then(d=>(r&&i._resolve(),i._completion.then(()=>d))).catch(d=>(i._reject(d),Fe(d)))})}function ir(t,e,n){const r=Me(t)?t.slice():[t];for(let o=0;o0,m={...p,isVirtual:y,keyTail:d,keyLength:f,extractKey:Uo(c),unique:!y&&p.unique};return b.push(m),m.isPrimaryKey||s.push(m),f>1&&i(f===2?c[0]:c.slice(0,f-1),d+1,p),b.sort((w,_)=>w.keyTail-_.keyTail),m}const a=i(r.primaryKey.keyPath,0,r.primaryKey);o[":id"]=[a];for(const c of r.indexes)i(c.keyPath,0,c);function l(c){const d=c.query.index;return d.isVirtual?{...c,query:{index:d,range:(p=c.query.range,h=d.keyTail,{type:p.type===1?2:p.type,lower:ir(p.lower,p.lowerOpen?t.MAX_KEY:t.MIN_KEY,h),lowerOpen:!0,upper:ir(p.upper,p.upperOpen?t.MIN_KEY:t.MAX_KEY,h),upperOpen:!0})}}:c;var p,h}return{...n,schema:{...r,primaryKey:a,indexes:s,getIndexByKeyPath:function(c){const d=o[Pn(c)];return d&&d[0]}},count:c=>n.count(l(c)),query:c=>n.query(l(c)),openCursor(c){const{keyTail:d,isVirtual:p,keyLength:h}=c.query.index;return p?n.openCursor(l(c)).then(b=>b&&function(f){return Object.create(f,{continue:{value:function(m){m!=null?f.continue(ir(m,c.reverse?t.MAX_KEY:t.MIN_KEY,d)):c.unique?f.continue(f.key.slice(0,h).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,d)):f.continue()}},continuePrimaryKey:{value(m,w){f.continuePrimaryKey(ir(m,t.MAX_KEY,d),w)}},primaryKey:{get:()=>f.primaryKey},key:{get(){const m=f.key;return h===1?m[0]:m.slice(0,h)}},value:{get:()=>f.value}})}(b)):n.openCursor(c)}}}}}};function Ms(t,e,n,r){return n=n||{},r=r||"",Ne(t).forEach(o=>{if(Ze(e,o)){var s=t[o],i=e[o];if(typeof s=="object"&&typeof i=="object"&&s&&i){const a=Io(s);a!==Io(i)?n[r+o]=e[o]:a==="Object"?Ms(s,i,n,r+o+"."):s!==i&&(n[r+o]=e[o])}else s!==i&&(n[r+o]=e[o])}else n[r+o]=void 0}),Ne(e).forEach(o=>{Ze(t,o)||(n[r+o]=e[o])}),n}const Bf={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(e){const n=t.table(e),{primaryKey:r}=n.schema;return{...n,mutate(s){const i=ae.trans,{deleting:a,creating:l,updating:u}=i.table(e).hook;switch(s.type){case"add":if(l.fire===be)break;return i._promise("readwrite",()=>c(s),!0);case"put":if(l.fire===be&&u.fire===be)break;return i._promise("readwrite",()=>c(s),!0);case"delete":if(a.fire===be)break;return i._promise("readwrite",()=>c(s),!0);case"deleteRange":if(a.fire===be)break;return i._promise("readwrite",()=>function(p){return d(p.trans,p.range,1e4)}(s),!0)}return n.mutate(s);function c(p){const h=ae.trans,b=p.keys||function(f,y){return y.type==="delete"?y.keys:y.keys||y.values.map(f.extractKey)}(r,p);if(!b)throw new Error("Keys missing");return(p=p.type==="add"||p.type==="put"?{...p,keys:b}:{...p}).type!=="delete"&&(p.values=[...p.values]),p.keys&&(p.keys=[...p.keys]),function(f,y,m){return y.type==="add"?Promise.resolve([]):f.getMany({trans:y.trans,keys:m,cache:"immutable"})}(n,p,b).then(f=>{const y=b.map((m,w)=>{const _=f[w],k={onerror:null,onsuccess:null};if(p.type==="delete")a.fire.call(k,m,_,h);else if(p.type==="add"||_===void 0){const x=l.fire.call(k,m,p.values[w],h);m==null&&x!=null&&(m=x,p.keys[w]=m,r.outbound||nt(p.values[w],r.keyPath,m))}else{const x=Ms(_,p.values[w]),I=u.fire.call(k,x,m,_,h);if(I){const E=p.values[w];Object.keys(I).forEach(N=>{Ze(E,N)?E[N]=I[N]:nt(E,N,I[N])})}}return k});return n.mutate(p).then(({failures:m,results:w,numFailures:_,lastResult:k})=>{for(let x=0;x(y.forEach(w=>w.onerror&&w.onerror(m)),Promise.reject(m)))})}function d(p,h,b){return n.query({trans:p,values:!1,query:{index:r,range:h},limit:b}).then(({result:f})=>c({type:"delete",keys:f,trans:p}).then(y=>y.numFailures>0?Promise.reject(y.failures[0]):f.length({table:e=>{const n=t.table(e);return{...n,getMany:r=>{if(!r.cache)return n.getMany(r);const o=Xi(r.keys,r.trans._cache,r.cache==="clone");return o?oe.resolve(o):n.getMany(r).then(s=>(r.trans._cache={keys:r.keys,values:r.cache==="clone"?Vn(s):s},s))},mutate:r=>(r.type!=="add"&&(r.trans._cache=null),n.mutate(r))}}})};function zs(t){return!("from"in t)}const ft=function(t,e){if(!this){const n=new ft;return t&&"d"in t&&We(n,t),n}We(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0})};function Wn(t,e,n){const r=ze(e,n);if(isNaN(r))return;if(r>0)throw RangeError();if(zs(t))return We(t,{from:e,to:n,d:1});const o=t.l,s=t.r;if(ze(n,t.from)<0)return o?Wn(o,e,n):t.l={from:e,to:n,d:1,l:null,r:null},va(t);if(ze(e,t.to)>0)return s?Wn(s,e,n):t.r={from:e,to:n,d:1,l:null,r:null},va(t);ze(e,t.from)<0&&(t.from=e,t.l=null,t.d=s?s.d+1:1),ze(n,t.to)>0&&(t.to=n,t.r=null,t.d=t.l?t.l.d+1:1);const i=!t.r;o&&!t.l&&Nr(t,o),s&&i&&Nr(t,s)}function Nr(t,e){zs(e)||function n(r,{from:o,to:s,l:i,r:a}){Wn(r,o,s),i&&n(r,i),a&&n(r,a)}(t,e)}function zf(t,e){const n=Yo(e);let r=n.next();if(r.done)return!1;let o=r.value;const s=Yo(t);let i=s.next(o.from),a=i.value;for(;!r.done&&!i.done;){if(ze(a.from,o.to)<=0&&ze(a.to,o.from)>=0)return!0;ze(o.from,a.from)<0?o=(r=n.next(a.from)).value:a=(i=s.next(o.from)).value}return!1}function Yo(t){let e=zs(t)?null:{s:0,n:t};return{next(n){const r=arguments.length>0;for(;e;)switch(e.s){case 0:if(e.s=1,r)for(;e.n.l&&ze(n,e.n.from)<0;)e={up:e,n:e.n.l,s:1};else for(;e.n.l;)e={up:e,n:e.n.l,s:1};case 1:if(e.s=2,!r||ze(n,e.n.to)<=0)return{value:e.n,done:!1};case 2:if(e.n.r){e.s=3,e={up:e,n:e.n.r,s:0};continue}case 3:e=e.up}return{done:!0}}}}function va(t){var e,n;const r=(((e=t.r)===null||e===void 0?void 0:e.d)||0)-(((n=t.l)===null||n===void 0?void 0:n.d)||0),o=r>1?"r":r<-1?"l":"";if(o){const s=o==="r"?"l":"r",i={...t},a=t[o];t.from=a.from,t.to=a.to,t[o]=a[o],i[o]=a[s],t[s]=i,i.d=ga(i)}t.d=ga(t)}function ga({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}fn(ft.prototype,{add(t){return Nr(this,t),this},addKey(t){return Wn(this,t,t),this},addKeys(t){return t.forEach(e=>Wn(this,e,e)),this},[Do](){return Yo(this)}});const Lf={stack:"dbcore",level:0,create:t=>{const e=t.schema.name,n=new ft(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const o=t.table(r),{schema:s}=o,{primaryKey:i}=s,{extractKey:a,outbound:l}=i,u={...o,mutate:p=>{const h=p.trans,b=h.mutatedParts||(h.mutatedParts={}),f=I=>{const E=`idb://${e}/${r}/${I}`;return b[E]||(b[E]=new ft)},y=f(""),m=f(":dels"),{type:w}=p;let[_,k]=p.type==="deleteRange"?[p.range]:p.type==="delete"?[p.keys]:p.values.length<50?[[],p.values]:[];const x=p.trans._cache;return o.mutate(p).then(I=>{if(Me(_)){w!=="delete"&&(_=I.results),y.addKeys(_);const E=Xi(_,x);E||w==="add"||m.addKeys(_),(E||k)&&function(N,D,R,$){function P(B){const v=N(B.name||"");function T(A){return A!=null?B.extractKey(A):null}const H=A=>B.multiEntry&&Me(A)?A.forEach(X=>v.addKey(X)):v.addKey(A);(R||$).forEach((A,X)=>{const K=R&&T(R[X]),ne=$&&T($[X]);ze(K,ne)!==0&&(K!=null&&H(K),ne!=null&&H(ne))})}D.indexes.forEach(P)}(f,s,E,k)}else if(_){const E={from:_.lower,to:_.upper};m.add(E),y.add(E)}else y.add(n),m.add(n),s.indexes.forEach(E=>f(E.name).add(n));return I})}},c=({query:{index:p,range:h}})=>{var b,f;return[p,new ft((b=h.lower)!==null&&b!==void 0?b:t.MIN_KEY,(f=h.upper)!==null&&f!==void 0?f:t.MAX_KEY)]},d={get:p=>[i,new ft(p.key)],getMany:p=>[i,new ft().addKeys(p.keys)],count:c,query:c,openCursor:c};return Ne(d).forEach(p=>{u[p]=function(h){const{subscr:b}=ae;if(b){const f=k=>{const x=`idb://${e}/${r}/${k}`;return b[x]||(b[x]=new ft)},y=f(""),m=f(":dels"),[w,_]=d[p](h);if(f(w.name||"").add(_),!w.isPrimaryKey){if(p!=="count"){const k=p==="query"&&l&&h.values&&o.query({...h,values:!1});return o[p].apply(this,arguments).then(x=>{if(p==="query"){if(l&&h.values)return k.then(({result:E})=>(y.addKeys(E),x));const I=h.values?x.result.map(a):x.result;h.values?y.addKeys(I):m.addKeys(I)}else if(p==="openCursor"){const I=x,E=h.values;return I&&Object.create(I,{key:{get:()=>(m.addKey(I.primaryKey),I.key)},primaryKey:{get(){const N=I.primaryKey;return m.addKey(N),N}},value:{get:()=>(E&&y.addKey(I.primaryKey),I.value)}})}return x})}m.add(n)}}return o[p].apply(this,arguments)}}),u}}}};class Kt{constructor(e,n){this._middlewares={},this.verno=0;const r=Kt.dependencies;this._options=n={addons:Kt.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:o}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:be,dbReadyPromise:null,cancelOpen:be,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var i;s.dbReadyPromise=new oe(a=>{s.dbReadyResolve=a}),s.openCanceller=new oe((a,l)=>{s.cancelOpen=l}),this._state=s,this.name=e,this.on=Dn(this,"populate","blocked","versionchange","close",{ready:[As,be]}),this.on.ready.subscribe=Ei(this.on.ready.subscribe,a=>(l,u)=>{Kt.vip(()=>{const c=this._state;if(c.openComplete)c.dbOpenError||oe.resolve().then(l),u&&a(l);else if(c.onReadyBeingFired)c.onReadyBeingFired.push(l),u&&a(l);else{a(l);const d=this;u||a(function p(){d.on.ready.unsubscribe(l),d.on.ready.unsubscribe(p)})}})}),this.Collection=(i=this,bn(xf.prototype,function(a,l){this.db=i;let u=qi,c=null;if(l)try{u=l()}catch(b){c=b}const d=a._ctx,p=d.table,h=p.hook.reading.fire;this._ctx={table:p,index:d.index,isPrimKey:!d.index||p.schema.primKey.keyPath&&d.index===p.schema.primKey.name,range:u,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:c,or:d.or,valueMapper:h!==Tn?h:null}})),this.Table=function(a){return bn(kf.prototype,function(l,u,c){this.db=a,this._tx=c,this.name=l,this.schema=u,this.hook=a._allTables[l]?a._allTables[l].hook:Dn(null,{creating:[uf,be],reading:[cf,Tn],updating:[ff,be],deleting:[df,be]})})}(this),this.Transaction=function(a){return bn(Of.prototype,function(l,u,c,d,p){this.db=a,this.mode=l,this.storeNames=u,this.schema=c,this.chromeTransactionDurability=d,this.idbtrans=null,this.on=Dn(this,"complete","error","abort"),this.parent=p||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new oe((h,b)=>{this._resolve=h,this._reject=b}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},h=>{var b=this.active;return this.active=!1,this.on.error.fire(h),this.parent?this.parent._reject(h):b&&this.idbtrans&&this.idbtrans.abort(),Fe(h)})})}(this),this.Version=function(a){return bn(Af.prototype,function(l){this.db=a,this._cfg={version:l,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}(this),this.WhereClause=function(a){return bn(Vi.prototype,function(l,u,c){this.db=a,this._ctx={table:l,index:u===":id"?null:u,or:c};const d=a._deps.indexedDB;if(!d)throw new le.MissingAPI;this._cmp=this._ascending=d.cmp.bind(d),this._descending=(p,h)=>d.cmp(h,p),this._max=(p,h)=>d.cmp(p,h)>0?p:h,this._min=(p,h)=>d.cmp(p,h)<0?p:h,this._IDBKeyRange=a._deps.IDBKeyRange})}(this),this.on("versionchange",a=>{a.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()}),this.on("blocked",a=>{!a.newVersion||a.newVersionnew this.Transaction(a,l,u,this._options.chromeTransactionDurability,c),this._fireOnBlocked=a=>{this.on("blocked").fire(a),In.filter(l=>l.name===this.name&&l!==this&&!l._state.vcFired).map(l=>l.on("versionchange").fire(a))},this.use(Tf),this.use(Bf),this.use(Lf),this.use(Mf),this.vip=Object.create(this,{_vip:{value:!0}}),o.forEach(a=>a(this))}version(e){if(isNaN(e)||e<.1)throw new le.Type("Given version is not a positive number");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new le.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);const n=this._versions;var r=n.filter(o=>o._cfg.version===e)[0];return r||(r=new this.Version(e),n.push(r),n.sort(Pf),r.stores({}),this._state.autoSchema=!1,r)}_whenReady(e){return this.idbdb&&(this._state.openComplete||ae.letThrough||this._vip)?e():new oe((n,r)=>{if(this._state.openComplete)return r(new le.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void r(new le.DatabaseClosed);this.open().catch(be)}this._state.dbReadyPromise.then(n,r)}).then(e)}use({stack:e,create:n,level:r,name:o}){o&&this.unuse({stack:e,name:o});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:n,level:r??10,name:o}),s.sort((i,a)=>i.level-a.level),this}unuse({stack:e,name:n,create:r}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(o=>r?o.create!==r:!!n&&o.name!==n)),this}open(){return Ff(this)}_close(){const e=this._state,n=In.indexOf(this);if(n>=0&&In.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new oe(r=>{e.dbReadyResolve=r}),e.openCanceller=new oe((r,o)=>{e.cancelOpen=o})}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new le.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,n=this._state;return new oe((r,o)=>{const s=()=>{this.close();var i=this._deps.indexedDB.deleteDatabase(this.name);i.onsuccess=Ce(()=>{(function({indexedDB:a,IDBKeyRange:l},u){!Bs(a)&&u!==eo&&Ts(a,l).delete(u).catch(be)})(this._deps,this.name),r()}),i.onerror=st(o),i.onblocked=this._fireOnBlocked};if(e)throw new le.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(s):s()})}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){const e=this._state.dbOpenError;return e&&e.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return Ne(this._allTables).map(e=>this._allTables[e])}transaction(){const e=Rf.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,n,r){let o=ae.trans;o&&o.db===this&&e.indexOf("!")===-1||(o=null);const s=e.indexOf("?")!==-1;let i,a;e=e.replace("!","").replace("?","");try{if(a=n.map(u=>{var c=u instanceof this.Table?u.name:u;if(typeof c!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return c}),e=="r"||e===co)i=co;else{if(e!="rw"&&e!=uo)throw new le.InvalidArgument("Invalid transaction mode: "+e);i=uo}if(o){if(o.mode===co&&i===uo){if(!s)throw new le.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");o=null}o&&a.forEach(u=>{if(o&&o.storeNames.indexOf(u)===-1){if(!s)throw new le.SubTransaction("Table "+u+" not included in parent transaction.");o=null}}),s&&o&&!o.active&&(o=null)}}catch(u){return o?o._promise(null,(c,d)=>{d(u)}):Fe(u)}const l=Ji.bind(null,this,i,a,o,r);return o?o._promise(i,l,"lock"):ae.trans?mn(ae.transless,()=>this._whenReady(l)):this._whenReady(l)}table(e){if(!Ze(this._allTables,e))throw new le.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const Wf=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class Uf{constructor(e){this._subscribe=e}subscribe(e,n,r){return this._subscribe(e&&typeof e!="function"?e:{next:e,error:n,complete:r})}[Wf](){return this}}function Qi(t,e){return Ne(e).forEach(n=>{Nr(t[n]||(t[n]=new ft),e[n])}),t}function Kf(t){let e,n=!1;const r=new Uf(o=>{const s=Ds(t);let i=!1,a={},l={};const u={get closed(){return i},unsubscribe:()=>{i=!0,Dt.storagemutated.unsubscribe(h)}};o.start&&o.start(u);let c=!1,d=!1;function p(){return Ne(l).some(f=>a[f]&&zf(a[f],l[f]))}const h=f=>{Qi(a,f),p()&&b()},b=()=>{if(c||i)return;a={};const f={},y=function(m){s&&pn();const w=()=>Ot(t,{subscr:m,trans:null}),_=ae.trans?mn(ae.transless,w):w();return s&&_.then(gt,gt),_}(f);d||(Dt(zn,h),d=!0),c=!0,Promise.resolve(y).then(m=>{n=!0,e=m,c=!1,i||(p()?b():(a={},l=f,o.next&&o.next(m)))},m=>{c=!1,n=!1,o.error&&o.error(m),u.unsubscribe()})};return b(),u});return r.hasValue=()=>n,r.getValue=()=>e,r}let Jo;try{Jo={indexedDB:Ee.indexedDB||Ee.mozIndexedDB||Ee.webkitIndexedDB||Ee.msIndexedDB,IDBKeyRange:Ee.IDBKeyRange||Ee.webkitIDBKeyRange}}catch{Jo={indexedDB:null,IDBKeyRange:null}}const Rt=Kt;function vr(t){let e=pt;try{pt=!0,Dt.storagemutated.fire(t)}finally{pt=e}}fn(Rt,{...dr,delete:t=>new Rt(t,{addons:[]}).delete(),exists:t=>new Rt(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1),getDatabaseNames(t){try{return function({indexedDB:e,IDBKeyRange:n}){return Bs(e)?Promise.resolve(e.databases()).then(r=>r.map(o=>o.name).filter(o=>o!==eo)):Ts(e,n).toCollection().primaryKeys()}(Rt.dependencies).then(t)}catch{return Fe(new le.MissingAPI)}},defineClass:()=>function(t){We(this,t)},ignoreTransaction:t=>ae.trans?mn(ae.transless,t):t(),vip:Zo,async:function(t){return function(){try{var e=Go(t.apply(this,arguments));return e&&typeof e.then=="function"?e:oe.resolve(e)}catch(n){return Fe(n)}}},spawn:function(t,e,n){try{var r=Go(t.apply(n,e||[]));return r&&typeof r.then=="function"?r:oe.resolve(r)}catch(o){return Fe(o)}},currentTransaction:{get:()=>ae.trans||null},waitFor:function(t,e){const n=oe.resolve(typeof t=="function"?Rt.ignoreTransaction(t):t).timeout(e||6e4);return ae.trans?ae.trans.waitFor(n):n},Promise:oe,debug:{get:()=>ct,set:t=>{Pi(t,t==="dexie"?()=>!0:$i)}},derive:on,extend:We,props:fn,override:Ei,Events:Dn,on:Dt,liveQuery:Kf,extendObservabilitySet:Qi,getByKeyPath:yt,setByKeyPath:nt,delByKeyPath:function(t,e){typeof e=="string"?nt(t,e,void 0):"length"in e&&[].map.call(e,function(n){nt(t,n,void 0)})},shallowClone:Oi,deepClone:Vn,getObjectDiff:Ms,cmp:ze,asap:Ci,minKey:Lo,addons:[],connections:In,errnames:js,dependencies:Jo,semVer:da,version:da.split(".").map(t=>parseInt(t)).reduce((t,e,n)=>t+e/Math.pow(10,2*n))}),Rt.maxKey=Ln(Rt.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Dt(zn,t=>{if(!pt){let e;Qr?(e=document.createEvent("CustomEvent"),e.initCustomEvent(Et,!0,!0,t)):e=new CustomEvent(Et,{detail:t}),pt=!0,dispatchEvent(e),pt=!1}}),addEventListener(Et,({detail:t})=>{pt||vr(t)}));let pt=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(Et);typeof t.unref=="function"&&t.unref(),Dt(zn,e=>{pt||t.postMessage(e)}),t.onmessage=e=>{e.data&&vr(e.data)}}else if(typeof self<"u"&&typeof navigator<"u"){Dt(zn,e=>{try{pt||(typeof localStorage<"u"&&localStorage.setItem(Et,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(n=>n.postMessage({type:Et,changedParts:e})))}catch{}}),typeof addEventListener<"u"&&addEventListener("storage",e=>{if(e.key===Et){const n=JSON.parse(e.newValue);n&&vr(n.changedParts)}});const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",function({data:e}){e&&e.type===Et&&vr(e.changedParts)})}oe.rejectionMapper=function(t,e){if(!t||t instanceof sn||t instanceof TypeError||t instanceof SyntaxError||!t.name||!ia[t.name])return t;var n=new ia[t.name](e||t.message,t);return"stack"in t&&mt(n,"stack",{get:function(){return this.inner.stack}}),n},Pi(ct,$i);var $f=(t=>(t.SAVE="save",t.SAVE_AS="saveAs",t.openSpotlightSearch="openSpotlightSearch",t))($f||{}),gr=(t=>(t.MOVE_TO_ROOT_FOLDER="moveToRootFolder",t.DELETE="delete",t))(gr||{});const qf="comfyui_workspace_db";class Hf extends Kt{constructor(){super(qf);Se(this,"workflows");Se(this,"changelogs");Se(this,"media");Se(this,"folders");Se(this,"tags");Se(this,"userSettings");Se(this,"models");Se(this,"cache");Se(this,"workflowVersions");this.version(1).stores({workflows:"&id, name, parentFolderID",changelogs:"&id, workflowID",media:"&id, workflowID",folders:"&id, name, parentFolderID",tags:"&name",userSettings:"&id",models:"&id, fileName, fileHash",cache:"&id"}).upgrade(n=>{}),this.version(2).stores({workflows:"&id, name, parentFolderID,cloudID",changelogs:"&id, workflowID",media:"&id, workflowID",folders:"&id, name, parentFolderID",tags:"&name",userSettings:"&id",models:"&id, fileName, fileHash",cache:"&id",workflowVersions:"&id, name, workflowID,cloudID"}).upgrade(n=>{})}}const ce=new Hf;class Yt{constructor(e){Se(this,"tableName");this.tableName=e}async saveDiskDB(){const e=await ce[this.tableName].toArray(),n={};e.forEach(r=>{r.id?n[r.id]=r:r.name?n[r.name]=r:console.error("TableBaseModel should have id or name")});try{Hd(this.tableName,JSON.stringify(n))}catch(r){console.error("error saving disk db",r)}}async add(e){return e.id||(e.id=Fn()),e.createTime||(e.createTime=Date.now()),await ce[this.tableName].add(e),await this.saveDiskDB(),e}async put(e){return await ce[this.tableName].put(e),await this.saveDiskDB(),e}async bulkPut(e){await ce[this.tableName].bulkPut(e),this.saveDiskDB()}async update(e,n){return await ce[this.tableName].update(e,n),this.saveDiskDB(),await this.get(e)??null}async listAll(){return await ce[this.tableName].toArray()}async filter(e){return await ce[this.tableName].filter(e).toArray()}async batchQuery(e){return await ce[this.tableName].bulkGet(e)}async getRecords(){console.warn("[DEPRECATED] getRecords() call, should only be used for one-time backfill for indexdb",this.tableName);const e=await qd(this.tableName);let n;try{n=e!=null?JSON.parse(e):null}catch{}if(n==null){const r=await Jd()??"{}";n=JSON.parse(r)[this.tableName]}return n??{}}async get(e){return await ce[this.tableName].get(e)}async delete(e){await ce[this.tableName].delete(e),this.saveDiskDB()}async listByIndex(e,n){return await ce[this.tableName].where(e).equals(n).toArray()}}const Vf=80,Tr=class Tr extends Yt{constructor(){super("changelogs")}static async load(){return new Tr}async listByWorkflowID(e){return await ce.changelogs.where("workflowID").equals(e).reverse().sortBy("createTime")}async getLastestByWorkflowID(e){return(await this.listByWorkflowID(e))[0]}async create(e){const n=await this.getLastestByWorkflowID(e.workflowID);if(n!=null&&n.json===e.json)return null;const r={id:Fn(),json:e.json,workflowID:e.workflowID,createTime:Date.now(),isAutoSave:e.isAutoSave};return await ce.changelogs.add(r),await this.deleteLogsExceedLimit(e.workflowID),r}async deleteLogsExceedLimit(e){var o;const n=await ce.changelogs.where("workflowID").equals(e).reverse().sortBy("createTime"),r=((o=Y==null?void 0:Y.settings)==null?void 0:o.maximumChangelogNumber)??Vf;if(n.length>r){const s=n.slice(r);await ce.changelogs.bulkDelete(s.map(i=>i.id))}}};Se(Tr,"TABLE_NAME","changelogs");let Xo=Tr;const hp="CWM_WORKFLOWS_SORT_TYPE";var at=(t=>(t.RECENTLY_OPENED="recentlyOpened",t.RECENTLY_MODIFIED="newest",t.OLDEST_MODIFIED="oldest",t.AZ="name A-Z",t.ZA="name Z-A",t))(at||{});const pp=[{title:"Import Workflows",type:"file"},{title:"Import Folder",type:"folder"}];function el(t,e=!0,n=!1,r="-"){const o=new Date(t),s=String(o.getDate()).padStart(2,"0"),i=String(o.getMonth()+1).padStart(2,"0"),a=o.getFullYear(),l=String(o.getHours()).padStart(2,"0"),u=String(o.getMinutes()).padStart(2,"0"),c=String(o.getSeconds()).padStart(2,"0"),d=`${i}${r}${s}${r}${a}`;return e?d+` ${l}:${u}`:n?d+`:${c}`:d}const wr=(t,e=at.RECENTLY_MODIFIED)=>{const n=[...t];switch(e){case at.AZ:n.sort((r,o)=>r.name.localeCompare(o.name));break;case at.ZA:n.sort((r,o)=>o.name.localeCompare(r.name));break;case at.RECENTLY_MODIFIED:n.sort((r,o)=>o.updateTime-r.updateTime);break;case at.OLDEST_MODIFIED:n.sort((r,o)=>r.updateTime-o.updateTime);break;case at.RECENTLY_OPENED:n.sort((r,o)=>(o.lastOpenedTime??0)-(r.lastOpenedTime??0));break}return n};function Zf(t){const e=t.nodes,n=new Array,r=new Map,o=new Array;for(let s=0;s{var n;const e=(n=Y==null?void 0:Y.settings)==null?void 0:n.shortcuts;if(!e)return!1;for(const r in e){const s=e[r].split("+"),i={Control:t.ctrlKey,Shift:t.shiftKey,Alt:t.altKey,Command:t.metaKey,[t.key.toUpperCase()]:!0};for(const a in i)i[a]||delete i[a];if(s.length===Object.keys(i).length&&s.every(a=>i[a]))return r}};function vp(t){const e=["png","jpg","jpeg","gif","bmp","webp"],n=t.split(".").pop();return n!=null&&e.includes(n)}function Gf(t){return`/workspace/view_media?filename=${t}`}function wa(){const e=window.location.hash.slice(1).split("/").find(n=>n.includes("workspaceId@"));return e?e.split("@")[1]:null}function tl(t){const e=window.location.hash.slice(1).split("/"),n=e.findIndex(o=>o.includes("workspaceId@")),r=`workspaceId@${t}`;return n>=0?e[n]=r:e.push(r),`${e.join("/")}`}const Yf=t=>{const e=tl(t);window.open(`${window.location.origin}/#${e}`)},nl={last_node_id:9,last_link_id:9,nodes:[{id:7,type:"CLIPTextEncode",pos:[413,389],size:{0:425.27801513671875,1:180.6060791015625},flags:{},order:3,mode:0,inputs:[{name:"clip",type:"CLIP",link:5}],outputs:[{name:"CONDITIONING",type:"CONDITIONING",links:[6],slot_index:0}],properties:{},widgets_values:["text, watermark"]},{id:6,type:"CLIPTextEncode",pos:[415,186],size:{0:422.84503173828125,1:164.31304931640625},flags:{},order:2,mode:0,inputs:[{name:"clip",type:"CLIP",link:3}],outputs:[{name:"CONDITIONING",type:"CONDITIONING",links:[4],slot_index:0}],properties:{},widgets_values:["beautiful scenery nature glass bottle landscape, , purple galaxy bottle,"]},{id:5,type:"EmptyLatentImage",pos:[473,609],size:{0:315,1:106},flags:{},order:1,mode:0,outputs:[{name:"LATENT",type:"LATENT",links:[2],slot_index:0}],properties:{},widgets_values:[512,512,1]},{id:3,type:"KSampler",pos:[863,186],size:{0:315,1:262},flags:{},order:4,mode:0,inputs:[{name:"model",type:"MODEL",link:1},{name:"positive",type:"CONDITIONING",link:4},{name:"negative",type:"CONDITIONING",link:6},{name:"latent_image",type:"LATENT",link:2}],outputs:[{name:"LATENT",type:"LATENT",links:[7],slot_index:0}],properties:{},widgets_values:[0x8e7ff42ed37e,!0,20,8,"euler","normal",1]},{id:8,type:"VAEDecode",pos:[1209,188],size:{0:210,1:46},flags:{},order:5,mode:0,inputs:[{name:"samples",type:"LATENT",link:7},{name:"vae",type:"VAE",link:8}],outputs:[{name:"IMAGE",type:"IMAGE",links:[9],slot_index:0}],properties:{}},{id:9,type:"SaveImage",pos:[1451,189],size:{0:210,1:26},flags:{},order:6,mode:0,inputs:[{name:"images",type:"IMAGE",link:9}],properties:{}},{id:4,type:"CheckpointLoaderSimple",pos:[26,474],size:{0:315,1:98},flags:{},order:0,mode:0,outputs:[{name:"MODEL",type:"MODEL",links:[1],slot_index:0},{name:"CLIP",type:"CLIP",links:[3,5],slot_index:1},{name:"VAE",type:"VAE",links:[8],slot_index:2}],properties:{},widgets_values:["v1-5-pruned-emaonly.ckpt"]}],links:[[1,4,0,3,0,"MODEL"],[2,5,0,3,3,"LATENT"],[3,4,1,6,0,"CLIP"],[4,6,0,3,1,"CONDITIONING"],[5,4,1,7,0,"CLIP"],[6,7,0,3,2,"CONDITIONING"],[7,3,0,8,0,"LATENT"],[8,4,2,8,1,"VAE"],[9,8,0,9,0,"IMAGE"]],groups:[],config:{},extra:{},version:.4},xt="workspace_info",Jf=9999999,ba="upgrade_to_2way_sync",Ls=28,gp="SHORTCUT_TRIGGER_EVENT";function br(...t){const e=t.filter(n=>n!=="").join("/");return Pt(e)}function Pt(t){let n=t.split("/").filter(r=>r!=="").join("/").replace(/\\/g,"/");return n=n.replace(/^\/+/,""),n}function yo(t){return br(t.parentFolderID??"",t.name+".json")}var Ye;(t=>{async function e(l,u){try{const d=await(await Ie("/workspace/file/move",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:yo(l),newParentPath:u})})).json();return d.error?(alert("Error moving file: "+d.error),!1):!0}catch(c){console.error("Error deleting file:",c)}}t.moveWorkflow=e;async function n(l,u){try{const d=await(await Ie("/workspace/file/gen_unique_name",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:br(u??"",l)})})).json();return d.error?(console.error("Error getting unique name:",d.error),null):d.uniqueName}catch(c){console.error("Error deleting file:",c)}return null}t.genFileUniqueName=n;async function r({parentFolderID:l,name:u},c){try{const p=await(await Ie("/workspace/file/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:br(l??"",u+".json"),newName:c})})).json();return p.error?(alert("Error rename file: "+p.error),!1):!0}catch(d){console.error("Error deleting file:",d)}}t.renameWorkflow=r;async function o(l){const u=l.json,c=JSON.parse(u);c.extra[xt]==null&&(c.extra[xt]={}),c.extra[xt].id=l.id;const p=await(await Ie("/workspace/file/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:yo(l),json:JSON.stringify(c)})})).json();if(p.error)throw console.error("Error saving file:",p.error),alert(`"Error saving file: ${p.error} + + 👉Please try "Save as" from "Files" dropdown menu + `),new Error(p.error);return p}t.saveWorkflow=o;async function s(l){try{return await(await Ie("/workspace/delete_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_path:yo(l),deleteEmptyFolder:!1})})).text()}catch(u){alert("Error deleting workflow .json file: "+u),console.error("Error deleting file:",u)}}t.deleteWorkflow=s;async function i({parentFolderID:l,name:u,json:c,id:d}){var b;let p=JSON.parse(c);p.extra==null&&(p.extra={}),p.extra[xt]==null&&(p.extra[xt]={}),p.extra[xt].id=d;const h={parentFolderPath:Pt(l??""),name:u,json:JSON.stringify(p)};try{const y=await(await Ie("/workspace/create_workflow_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)})).json();return y.name&&await((b=ce.workflows)==null?void 0:b.update(d,{name:y.name})),y}catch(f){return console.error(`Error creating file <${d}> at "${l}"`,f),alert(`Error creating file <${d}> at "${l}"`),{}}}t.createWorkflow=i;async function a({parentFolderID:l,name:u,id:c}){const d=br(l??"",u+".json");try{const h=await(await Ie("/workspace/get_workflow_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:d,id:c})})).json();return h.error&&(console.error(`Error getting file <${c}> at "${d}"`,h.error),alert({message:`Error getting file <${c}> at "${d}"`,level:"error"})),h}catch(p){return console.error(`Erro finding file <${c}> at "${d}"`,p),{}}}t.getFile=a})(Ye||(Ye={}));async function Ws(t,e=!1,n=!1){try{return await(await Ie("/workspace/file/scan_my_workflows_folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:Pt(t),recursive:e,metaInfoOnly:n})})).json()}catch(r){return console.error("Error scan local new files:",r),[]}}async function Xf(t,e){const n=Pt(t??""),o=(await Ws(n)).map(async a=>{var c;const l=a.name,u=[n,l].join("/");return Qf(a)?{id:Pt(u),name:a.name,parentFolderID:n,type:"folder",createTime:Date.now(),updateTime:Date.now()}:{...await((c=ce.workflows)==null?void 0:c.get(a.id).catch(h=>(console.error("Error getting workflow from indexdb",h),null)))??{createTime:Date.now(),updateTime:Date.now()},id:a.id,json:a.json??"{}",name:l.replace(/\.json$/,""),parentFolderID:n,createTime:a.createTime}}),s=await Promise.all(o);ce.workflows.bulkPut(s.filter(a=>!nh(a)));const i=s.filter(a=>a!=null);return wr(i,e??at.RECENTLY_MODIFIED)}function Qf(t){return"type"in t&&t.type==="folder"}const Br=class Br extends Yt{constructor(){super("workflows");Se(this,"_curWorkflow",null)}get curWorkflow(){return this._curWorkflow}static async load(){return new Br}updateCurWorkflowID(n){if(n==null){this._curWorkflow=null;return}this.get(n).then(r=>{this._curWorkflow=r??null})}updateCurWorkflow(n){this._curWorkflow=n}async latestVersionCheck(){if(this._curWorkflow){const n=await ce.workflows.get(this._curWorkflow.id);return n?(n==null?void 0:n.updateTime)===this._curWorkflow.updateTime:!0}return!0}async listByIndex(n,r){const o=await super.listByIndex(n,r);return await(Y==null?void 0:Y.getSetting("twoWaySync"))?(await Promise.all(o.map(async a=>await this.get(a.id)))).filter(a=>a!=null):o}async generateUniqueName(n,r){if(await(Y==null?void 0:Y.getSetting("twoWaySync"))){const l=await Ye.genFileUniqueName((n??"Untitled Flow")+".json",r??"");return(l==null?void 0:l.replace(/\.json$/,""))??"Untitled Flow"}let s=n??"Untitled Flow";const a=(await this.listAll()??[]).filter(l=>l.parentFolderID==r).map(l=>l.name);if(a.includes(s)){let l=2,u=!0;for(;u;)a.includes(`${s} ${l}`)?l++:(s=`${s} ${l}`,u=!1)}return s}async createFlow(n){const{name:r}=n,o=await this.generateUniqueName(r,n.parentFolderID??void 0),s=Date.now(),i={...n,id:n.id??Fn(),json:n.json??JSON.stringify(nl),name:o,updateTime:n.updateTime??s,createTime:n.createTime??s};return await ce.workflows.add(i),this.saveDiskDB(),await(Y==null?void 0:Y.getSetting("twoWaySync"))?(await Ye.createWorkflow(i),await this.get(i.id)):i}async update(n,r){throw new Error("Method not allowed.")}async updateTopFields(n,r){return this._update(n,r)}async updateMetaInfo(n,r){return this._update(n,r)}async _update(n,r){await ce.workflows.update(n,r);const o=await ce.workflows.get(n)??null;return this._curWorkflow&&this._curWorkflow.id===n&&(this._curWorkflow=o),this.saveDiskDB(),o}async updateFolder(n,r){const o=await(Y==null?void 0:Y.getSetting("twoWaySync")),s=await this.get(n);!await this.updateMetaInfo(n,r)||!s||o&&await Ye.moveWorkflow(s,r.parentFolderID)}async genLastManualSavedJson(n){const r=await(He==null?void 0:He.getLastestByWorkflowID(n));return r==null?void 0:r.json}async updateName(n,r){const o=await this.get(n);return await(Y==null?void 0:Y.getSetting("twoWaySync"))&&o&&await Ye.renameWorkflow(o,r.name+".json"),await this.updateMetaInfo(n,r)}async updateFlow(n,r){const o=await this.get(n,!1);if(o==null)return;const s=JSON.stringify(o.json),i=JSON.stringify(r.json);if(s===i)return;const a=await this._update(n,{updateTime:Date.now(),json:r.json});await(Y==null?void 0:Y.getSetting("twoWaySync"))&&a&&await Ye.saveWorkflow(a)}async batchCreateFlows(n=[],r=!1,o){var i,a;const s=[];for(const l of n){const u=l.name&&r?l.name:await this.generateUniqueName(l.name,o),c=Fn(),d=Date.now(),p={id:c,name:u,json:l.json,parentFolderID:o,updateTime:d,createTime:d,tags:[]};if(s.push(p),await(Y==null?void 0:Y.getSetting("twoWaySync")))try{const b=JSON.parse(l.json),f=(a=(i=b==null?void 0:b.extra)==null?void 0:i[xt])==null?void 0:a.id;f&&(await this.get(f)||(p.id=f)),Ye.createWorkflow(p)}catch(b){console.error("batchCreateFlows error",b)}}try{await ce.workflows.bulkAdd(s),this.saveDiskDB()}catch(l){console.error("batchCreateFlows error",l)}}async deleteFlow(n){const r=await this.get(n);r&&await(Y==null?void 0:Y.getSetting("twoWaySync"))&&await Ye.deleteWorkflow(r),await ce.workflows.delete(n),this.saveDiskDB()}async batchDeleteFlow(n){const r=await ce.workflows.bulkGet(n);for(const o of r){if(!o)return;await(Y==null?void 0:Y.getSetting("twoWaySync"))&&await Ye.deleteWorkflow(o)}await ce.workflows.bulkDelete(n),this.saveDiskDB()}async listFolderContent(n,r){if(await(Y==null?void 0:Y.getSetting("twoWaySync"))){const l=await Xf(n??null);return wr(l,r??at.RECENTLY_MODIFIED)}const s=await this.listAll().then(l=>l.filter(u=>u.parentFolderID==n))??[],i=await(qe==null?void 0:qe.listAll().then(l=>l.filter(u=>u.parentFolderID==n)))??[],a=[...s,...i];return wr(a,r??at.RECENTLY_MODIFIED)}async get(n,r=!0){const o=await(Y==null?void 0:Y.getSetting("twoWaySync")),s=await ce.workflows.get(n);if(!o||!r)return s;if(s==null)return;const i=await Ye.getFile({parentFolderID:s.parentFolderID??null,name:s.name,id:s.id});if(i.json)return{...s,json:JSON.stringify(i.json)}}async listAll(n){const r=await(Y==null?void 0:Y.getSetting("twoWaySync"));let o;if(r){const i=(await Ws("",!0)).filter(a=>(a==null?void 0:a.type)==="workflow").map(async a=>{const l=await ce.workflows.get(a.id);return a.updateTime=(l==null?void 0:l.updateTime)??Date.now(),l!=null&&l.lastOpenedTime&&(a.lastOpenedTime=l==null?void 0:l.lastOpenedTime),a});o=await Promise.all(i)}else o=await ce.workflows.toArray();return n?wr(o,n):o}async updateLastOpenedTime(n){await ce.workflows.update(n,{lastOpenedTime:Date.now()})}};Se(Br,"TABLE_NAME","workflows");let Qo=Br;var Ct;(t=>{async function e({parentFolderID:a,name:l}){return Pt(`${a??""}/${l}`)}t.genFolderRelPath=e;async function n(a){await Ie("/workspace/folder/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:Pt(a.id)})})}t.createFolder=n;async function r(a,l){const c=await(await Ie("/workspace/folder/move",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder:a,newParentPath:l})})).json();c.error&&alert("Failed to move folder: "+c.error)}t.moveFolder=r;async function o(a){try{return await(await Ie("/workspace/folder/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})})).text()}catch(l){console.error("Error deleting file:",l)}}t.deleteFolder=o;async function s(a){try{const u=await(await Ie("/workspace/file/count_files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})})).json();return u.error&&console.error("Error counting files:",u.error),u.count}catch(l){console.error("Error renaming file:",l)}return null}t.genFilesCountInFolder=s;async function i(a,l){try{const c=await(await Ie("/workspace/folder/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({absPath:a,newName:l})})).json();c.error&&alert("Failed to rename folder: "+c.error)}catch(u){console.error("Error renaming file:",u)}}t.renameFolder=i})(Ct||(Ct={}));const Mr=class Mr extends Yt{constructor(){super("folders")}static async load(){return new Mr}async create(e){const n=await this.generateUniqueName(e.name,e.parentFolderID),r=await(Y==null?void 0:Y.getSetting("twoWaySync")),o=await Ct.genFolderRelPath({name:n,parentFolderID:e.parentFolderID??""}),s={id:r?o:Fn(),name:n,parentFolderID:e.parentFolderID??null,updateTime:Date.now(),createTime:Date.now(),type:"folder"};return r?await Ct.createFolder(s):(await ce.folders.add(s),this.saveDiskDB()),s}async update(e,n){if(await(Y==null?void 0:Y.getSetting("twoWaySync")))return"parentFolderID"in n&&await Ct.moveFolder(e,n.parentFolderID??""),"name"in n&&await Ct.renameFolder(e,n.name??""),null;const o=await this.get(e);if(o==null)return null;"name"in n&&n.name!=o.name;const s="parentFolderID"in n&&n.parentFolderID!=o.parentFolderID,i={...o,...n};return n.name!=null&&(i.updateTime=Date.now()),s&&(n.name=await this.generateUniqueName(i.name,i.parentFolderID??void 0)),await ce.folders.update(e,n),this.saveDiskDB(),i}async deleteFolder(e,n=gr.DELETE){if(await(Y==null?void 0:Y.getSetting("twoWaySync"))){await Ws(e,!0,!0).then(a=>{a.forEach(l=>{l.type==="workflow"&&(q==null||q.deleteFlow(l.id))})}),await Ct.deleteFolder(e);return}const o=await(q==null?void 0:q.listAll())??[],s=await this.listAll(),i=[e];for(;i.length>0;){const a=i.shift();if(a){for(const u of o)if(u.parentFolderID===a)switch(n){case gr.DELETE:await(q==null?void 0:q.deleteFlow(u.id));break;case gr.MOVE_TO_ROOT_FOLDER:await(q==null?void 0:q.updateFolder(u.id,{parentFolderID:void 0}));break}await ce.folders.delete(a);const l=s.filter(u=>u.parentFolderID===a).map(u=>u.id);l.length&&i.push(...l)}}this.saveDiskDB()}async generateUniqueName(e,n){if(await(Y==null?void 0:Y.getSetting("twoWaySync")))return await Ye.genFileUniqueName(e??"New folder",n??"")??"New folder";let o=e??"New folder";const s=await this.listAll().then(i=>i.filter(a=>a.parentFolderID==n).map(a=>a.name));if(s.includes(o)){let i=2,a=!0;for(;a;)s.includes(`${o} ${i}`)?i++:(o=`${o} ${i}`,a=!1)}return o}};Se(Mr,"TABLE_NAME","folders");let es=Mr;class rl extends Yt{constructor(){super("media")}async listByWorkflowID(e){return await ce.media.where("workflowID").equals(e).reverse().sortBy("createTime")}async create(e){if(e.localPath.split(".").pop()==null)return null;const r={id:e.localPath,localPath:e.localPath,workflowID:e.workflowID,createTime:Date.now()};return await(q==null?void 0:q.updateMetaInfo(e.workflowID,{latestImage:r.localPath})),ce.media.put(r),this.saveDiskDB(),r}async delete(e){var n,r;super.delete(e),((n=q==null?void 0:q.curWorkflow)==null?void 0:n.coverMediaPath)===e&&(q==null||q.updateMetaInfo(q.curWorkflow.id,{coverMediaPath:void 0})),((r=q==null?void 0:q.curWorkflow)==null?void 0:r.latestImage)===e&&(q==null||q.updateMetaInfo(q.curWorkflow.id,{latestImage:void 0}))}}Se(rl,"TABLE_NAME","media");const wp=["Checkpoint","TextualInversion","Hypernetwork","LORA","Controlnet","Upscaler","VAE"],eh={Checkpoint:"checkpoints",TextualInversion:"embeddings",Hypernetwork:"hypernetworks",LORA:"loras",Controlnet:"controlnet",Upscaler:"upscale_models",VAE:"vae"};function bp(t){return t.modelVersions!==void 0}function th(t){var e;return((e=t.files)==null?void 0:e[0])!==void 0}function _p(t,e){var r,o,s,i,a,l;if(!t)return;let n;return th(t)?n={id:t.id,SHA256:(o=(r=t.files)==null?void 0:r[0].hashes)==null?void 0:o.SHA256,name:(s=t.files)==null?void 0:s[0].name,sizeKB:(a=(i=t.files)==null?void 0:i[0])==null?void 0:a.sizeKB}:n={id:t.id,SHA256:(l=t.hashes)==null?void 0:l[2],name:`${e} ${t.name}`},n}const zr=class zr extends Yt{constructor(){super("userSettings");Se(this,"defaultSettings");Se(this,"DEFAULT_USER","guest");Se(this,"_autoSave",!1);Se(this,"_settings");this.defaultSettings={id:this.DEFAULT_USER,topBarStyle:{top:0,left:0},myWorkflowsDir:"",shortcuts:{save:"Shift+S",saveAs:"Control+Alt+S",openSpotlightSearch:"Control+P"},defaultFolders:eh,autoSave:!1,autoSaveDuration:3,twoWaySync:!1,foldersOnTop:!1,cloudHost:"https://www.nodecafe.co",overwriteCurWorkflowWhenDroppingFileToCanvas:!1,maximumChangelogNumber:80,hideCoverImage:!1,disableUnsavedWarning:!1}}get settings(){return this._settings}get autoSave(){return this._autoSave}async getSetting(n){const r=await this.get(this.DEFAULT_USER);return n==="shortcuts"&&(r!=null&&r.shortcuts)?{...this.defaultSettings.shortcuts,...r.shortcuts}:(r==null?void 0:r[n])??this.defaultSettings[n]}async upsert(n){const o={...await this.get(this.DEFAULT_USER)??this.defaultSettings,...n};await this.put(o),this._settings={...this.defaultSettings,...o}}static async load(){const n=new zr,r=await Vd();return n.defaultSettings.myWorkflowsDir=r.path,await n.get(n.DEFAULT_USER).then(o=>{n._autoSave=(o==null?void 0:o.autoSave)??!1,n._settings={...n.defaultSettings,...o}}),n.defaultSettings.cloudHost.includes("comfyspace.art")&&await n.upsert({cloudHost:n.defaultSettings.cloudHost}),n}};Se(zr,"TABLE_NAME","userSettings");let ts=zr;const Lr=class Lr extends Yt{constructor(){super("tags")}static async load(){return new Lr}};Se(Lr,"TABLE_NAME","tags");let ns=Lr;const Wr=class Wr extends Yt{constructor(){super("workflowVersions")}static async load(){return new Wr}async listByWorkflowID(e){return await ce[this.tableName].where("workflowID").equals(e).reverse().sortBy("createTime")??[]}async getLatestByWorkflowID(e){const n=await this.listByWorkflowID(e);return n!=null&&n.length?n[0]:null}};Se(Wr,"TABLE_NAME","workflowVersions");let rs=Wr;function nh(t){return"type"in t&&t.type==="folder"}let q=null,_r=null,Y=null,qe=null,He=null,$t=null,ge=null;async function rh(){const t=async()=>{q=await Qo.load()},e=async()=>{_r=await ns.load()},n=async()=>{Y=await ts.load()},r=async()=>{qe=await es.load()},o=async()=>{He=await Xo.load()},s=async()=>{$t=new rl},i=async()=>{ge=await rs.load()};await Promise.all([t(),e(),n(),r(),o(),s(),i()]),localStorage.getItem("WORKSPACE_INDEXDB_BACKFILL")!=="true"&&(await oh(),localStorage.setItem("WORKSPACE_INDEXDB_BACKFILL","true"))}async function oh(){const t=async()=>{try{const a=await(q==null?void 0:q.getRecords());a&&await ce.workflows.bulkPut(Object.values(a))}catch(a){console.error(a)}},e=async()=>{try{const a=await(qe==null?void 0:qe.getRecords());a&&await ce.folders.bulkPut(Object.values(a))}catch(a){console.error(a)}},n=async()=>{try{const a=await($t==null?void 0:$t.getRecords());a&&await ce.media.bulkPut(Object.values(a))}catch(a){console.error(a)}},r=async()=>{try{const a=await(He==null?void 0:He.getRecords());a&&await ce.changelogs.bulkPut(Object.values(a))}catch(a){console.error(a)}},o=async()=>{try{const a=await(_r==null?void 0:_r.getRecords());a&&await ce.tags.bulkPut(Object.values(a))}catch(a){console.error(a)}},s=async()=>{try{const a=Y,l=await a.getRecords().then(u=>u[a.DEFAULT_USER]?u[a.DEFAULT_USER]:u);await ce.userSettings.put({...a.defaultSettings,...l})}catch(a){console.error(a)}},i=async()=>{try{const a=await(ge==null?void 0:ge.getRecords());a&&await ce.workflowVersions.bulkPut(Object.values(a))}catch(a){console.error(a)}};await Promise.all([t(),e(),n(),r(),o(),s(),i()])}const wt=j.createContext({curFlowID:null,loadWorkflowID:()=>{},saveCurWorkflow:async()=>{},discardUnsavedChanges:async()=>{},isDirty:!1,loadNewWorkflow:()=>{},loadFilePath:()=>{},setRoute:()=>{},route:"root",curVersion:null,setIsDirty:()=>{},setCurVersion:()=>{},setCurFlowIDAndName:()=>{}}),kp=j.createContext({refreshFolderStamp:0,setRefreshFolderStamp:()=>{}}),vo={x:0,y:0};function sh({children:t,onDragEnd:e,dragIconId:n}){const r=j.useRef(vo),o=j.useRef(!1),[s,i]=j.useState(vo),a=d=>{var p,h,b;if(!(!(d.target instanceof Element)||!(d.target.parentNode instanceof Element))&&[(p=d.target)==null?void 0:p.id,(b=(h=d.target)==null?void 0:h.parentNode)==null?void 0:b.id].includes(n)){r.current={x:d.clientX,y:d.clientY},o.current=!0,window.addEventListener("mousemove",l),window.addEventListener("mouseup",u);const f=document.getElementsByTagName("body")[0];f.style.userSelect="none"}},l=j.useCallback(d=>{const p={x:d.clientX-r.current.x,y:d.clientY-r.current.y};i(p)},[]),u=j.useCallback(()=>{i(p=>(setTimeout(()=>{e(p)},0),vo)),o.current=!1;const d=document.getElementsByTagName("body")[0];d.style.userSelect="auto",window.removeEventListener("mousemove",l),window.removeEventListener("mouseup",u)},[e,l]),c={transform:`translate(${s.x}px, ${s.y}px)`,zIndex:o.current?1e3:1};return O.jsx("div",{style:c,onMouseDown:a,children:t})}var ah={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},ih=Object.defineProperty,lh=Object.defineProperties,ch=Object.getOwnPropertyDescriptors,Fr=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,sl=Object.prototype.propertyIsEnumerable,_a=(t,e,n)=>e in t?ih(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ka=(t,e)=>{for(var n in e||(e={}))ol.call(e,n)&&_a(t,n,e[n]);if(Fr)for(var n of Fr(e))sl.call(e,n)&&_a(t,n,e[n]);return t},uh=(t,e)=>lh(t,ch(e)),dh=(t,e)=>{var n={};for(var r in t)ol.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&Fr)for(var r of Fr(t))e.indexOf(r)<0&&sl.call(t,r)&&(n[r]=t[r]);return n},Re=(t,e,n)=>{const r=j.forwardRef((o,s)=>{var i=o,{color:a="currentColor",size:l=24,stroke:u=2,children:c}=i,d=dh(i,["color","size","stroke","children"]);return j.createElement("svg",ka(uh(ka({ref:s},ah),{width:l,height:l,stroke:a,strokeWidth:u,className:`tabler-icon tabler-icon-${t}`}),d),[...n.map(([p,h])=>j.createElement(p,h)),...c||[]])});return r.propTypes={color:Ft.string,size:Ft.oneOfType([Ft.string,Ft.number]),stroke:Ft.oneOfType([Ft.string,Ft.number])},r.displayName=`${e}`,r},fh=Re("arrow-back-up-double","IconArrowBackUpDouble",[["path",{d:"M13 14l-4 -4l4 -4",key:"svg-0"}],["path",{d:"M8 14l-4 -4l4 -4",key:"svg-1"}],["path",{d:"M9 10h7a4 4 0 1 1 0 8h-1",key:"svg-2"}]]),hh=Re("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),Rr=Re("device-floppy","IconDeviceFloppy",[["path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2",key:"svg-0"}],["path",{d:"M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M14 4l0 4l-6 0l0 -4",key:"svg-2"}]]),ph=Re("download","IconDownload",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]),mh=Re("external-link","IconExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]),yh=Re("folder","IconFolder",[["path",{d:"M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2",key:"svg-0"}]]),vh=Re("grip-vertical","IconGripVertical",[["path",{d:"M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M9 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}],["path",{d:"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-3"}],["path",{d:"M15 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-4"}],["path",{d:"M15 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-5"}]]),gh=Re("history","IconHistory",[["path",{d:"M12 8l0 4l2 2",key:"svg-0"}],["path",{d:"M3.05 11a9 9 0 1 1 .5 4m-.5 5v-5h5",key:"svg-1"}]]),wh=Re("link","IconLink",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]),al=Re("lock","IconLock",[["path",{d:"M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z",key:"svg-0"}],["path",{d:"M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M8 11v-4a4 4 0 1 1 8 0v4",key:"svg-2"}]]),bh=Re("photo","IconPhoto",[["path",{d:"M15 8h.01",key:"svg-0"}],["path",{d:"M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12z",key:"svg-1"}],["path",{d:"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5",key:"svg-2"}],["path",{d:"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3",key:"svg-3"}]]),_h=Re("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]),kh=Re("share-2","IconShare2",[["path",{d:"M8 9h-1a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-8a2 2 0 0 0 -2 -2h-1",key:"svg-0"}],["path",{d:"M12 14v-11",key:"svg-1"}],["path",{d:"M9 6l3 -3l3 3",key:"svg-2"}]]),xh=Re("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]),il=Re("triangle-inverted-filled","IconTriangleInvertedFilled",[["path",{d:"M20.118 3h-16.225a2.914 2.914 0 0 0 -2.503 4.371l8.116 13.549a2.917 2.917 0 0 0 4.987 .005l8.11 -13.539a2.914 2.914 0 0 0 -2.486 -4.386z",fill:"currentColor",key:"svg-0",strokeWidth:"0"}]]),Eh=Re("versions","IconVersions",[["path",{d:"M10 5m0 2a2 2 0 0 1 2 -2h6a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M7 7l0 10",key:"svg-1"}],["path",{d:"M4 8l0 8",key:"svg-2"}]]),Ch=Re("world","IconWorld",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M3.6 9h16.8",key:"svg-1"}],["path",{d:"M3.6 15h16.8",key:"svg-2"}],["path",{d:"M11.5 3a17 17 0 0 0 0 18",key:"svg-3"}],["path",{d:"M12.5 3a17 17 0 0 1 0 18",key:"svg-4"}]]),Sh=Re("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);function Oh(t){const{promptMessage:e="Are you sure you want to delete this?",variant:n="ghost",onDelete:r,isDisabled:o=!1,tooltipText:s}=t;return O.jsx(ui,{isLazy:!0,placement:"auto",gutter:0,children:({onClose:i})=>O.jsxs(O.Fragment,{children:[O.jsx(ci,{children:O.jsx(St,{children:O.jsx(Ht,{hasArrow:!0,label:s,placement:"bottom",children:O.jsx(jn,{"aria-label":"Delete confirm",size:"sm",icon:O.jsx(xh,{color:"#F56565",size:"20px"}),isDisabled:o,variant:n})})})}),O.jsxs(pi,{children:[O.jsx(fi,{onClick:i}),O.jsxs(di,{children:[O.jsx(Mt,{mb:4,pr:4,fontWeight:600,children:e}),O.jsx(Le,{colorScheme:"red",size:"sm",onClick:()=>{r(),i()},children:"Yes, delete"})]})]})]})})}function Ih({onClose:t}){ja();const{curFlowID:e,isDirty:n,loadWorkflowID:r,curVersion:o}=j.useContext(wt),[s,i]=j.useState(0),[a,l]=j.useState(null),[u,c]=j.useState([]),[d,p]=j.useState([]),h=async y=>{var x;const m=await(q==null?void 0:q.get(y)),w=await(He==null?void 0:He.listByWorkflowID(y));c(w??[]);const _=w==null?void 0:w.filter(I=>I.json===(m==null?void 0:m.json)),k=(x=_==null?void 0:_[0])==null?void 0:x.id;k&&l(k)},b=async()=>{const y=await(ge==null?void 0:ge.listByWorkflowID(e))??[];p(y)},f=y=>{ge==null||ge.delete(y).then(()=>{b()})};return j.useEffect(()=>{switch(s){case 0:b();break;case 1:h(e);break}},[s]),j.useEffect(()=>(Pe.canvasEl.addEventListener("click",t),()=>{Pe.canvasEl.removeEventListener("click",t)}),[s]),O.jsxs(Hl,{width:430,height:"100vh",gap:0,position:"fixed",top:0,left:0,zIndex:1e3,children:[O.jsx(ql,{pb:1,mb:0,children:O.jsxs(xn,{justifyContent:"space-between",alignItems:"center",children:[O.jsx(ps,{size:"md",children:"Version History"}),O.jsx(jn,{size:"sm",icon:O.jsx(Sh,{}),onClick:t,variant:"ghost","aria-label":"close version history"})]})}),O.jsx($l,{overflowY:"auto",gap:0,children:O.jsxs(vi,{isFitted:!0,variant:"enclosed",onChange:i,colorScheme:"teal",children:[O.jsxs(gi,{mb:"1em",children:[O.jsx(Co,{children:"Versions"}),O.jsx(Co,{children:"Change History"})]}),O.jsxs(wi,{children:[O.jsx(Eo,{children:O.jsx(rn,{divider:O.jsx(bo,{}),spacing:2,children:d==null?void 0:d.map(y=>O.jsxs(xn,{w:"100%",mb:1,justify:"space-between",backgroundColor:y.id===(o==null?void 0:o.id)?"teal.300":void 0,borderRadius:4,children:[O.jsxs(rn,{textAlign:"left",gap:0,children:[O.jsx(Mt,{fontWeight:"500",children:y.name??"untitled"}),O.jsxs(Mt,{color:"GrayText",fontSize:"sm",children:["Created: ",el(y.createTime)]})]}),O.jsxs(xn,{alignItems:"center",gap:2,children:[O.jsx(Le,{size:"sm",onClick:()=>{if(n){alert("You have unsaved changes, please save or discard your changes to proceed switching version, in case losing your changes.");return}Pe.loadGraphData(JSON.parse(y.json)),r(e,y.id),t()},children:"Load"}),O.jsx(Oh,{promptMessage:"Are you sure you want to delete this version?",onDelete:()=>{f(y.id)}})]})]},y.id))})}),O.jsxs(Eo,{children:[O.jsx(Mt,{mb:4,children:"All the saved changes of this workflow"}),O.jsx(rn,{divider:O.jsx(bo,{}),spacing:2,children:u==null?void 0:u.map(y=>O.jsxs(zt,{justifyContent:"space-between",children:[O.jsxs(Le,{size:"sm",variant:"ghost",onClick:()=>{if(n){alert("You have unsaved changes, please save or discard your changes to proceed switching version, in case losing your changes.");return}Pe.loadGraphData(JSON.parse(y.json)),q==null||q.updateFlow(e,{json:y.json}),t()},isActive:y.id===a,children:["Saved at ",new Date(y.createTime).toLocaleString()]},y.id),y.isAutoSave?O.jsx(Xr,{colorScheme:"teal",size:"sm",children:"Auto save"}):null]},y.id))})]})]})]})})]})}function Dh({workflowId:t,onClose:e}){const[n,r]=j.useState(""),[o,s]=j.useState(""),i=l=>{r(l.target.value),o&&s("")},a=async()=>{const l=n.trim();if(r(l),(await(ge==null?void 0:ge.listByWorkflowID(t))??[]).some(c=>c.name===l))s("The name is duplicated, please modify it and submit again.");else{const c=JSON.stringify(Pe.graph.serialize());await(ge==null?void 0:ge.add({name:n,workflowID:t,createTime:Date.now(),json:c})),e()}};return O.jsxs(as,{isOpen:!0,onClose:e,children:[O.jsx(is,{}),O.jsxs(ls,{children:[O.jsx(cs,{children:"Create Version"}),O.jsx(us,{}),O.jsx(ds,{children:O.jsxs(qr,{isInvalid:!!o,children:[O.jsx(Vr,{children:"Name"}),O.jsx(Un,{value:n,onChange:i,autoFocus:!0,onKeyUp:l=>{l.code==="Enter"&&!o&&n&&a()}}),o&&O.jsx(Hr,{children:o})]})}),O.jsxs(fs,{children:[O.jsx(Le,{colorScheme:"teal",mr:3,onClick:a,isDisabled:!n||!!o,children:"Create"}),O.jsx(Le,{onClick:e,children:"Cancel"})]})]})]})}function Ph({options:t,menuButton:e,isOpen:n,onClose:r}){const o=j.useRef(null);return vc({ref:o,handler:()=>r()}),O.jsxs(St,{position:"relative",children:[O.jsx(St,{children:e}),n&&O.jsx(St,{ref:o,mt:"8px",shadow:"md",p:"2",position:"absolute",zIndex:"dropdown",children:t})]})}function jh({menuButton:t,menuContent:e,onClose:n}){const r=j.useRef(),[o,s]=j.useState(!1),i=()=>{r.current=setTimeout(()=>s(!1),400)},a=()=>{s(!0),clearTimeout(r.current),r.current=void 0};return O.jsx(Ph,{isOpen:o,onClose:i,menuButton:O.jsx(St,{"aria-label":"menu",onClick:a,onMouseEnter:a,onMouseLeave:i,children:t}),options:O.jsx(Cs,{isOpen:!0,children:O.jsx(Ss,{minWidth:150,zIndex:1e3,onMouseEnter:a,onMouseLeave:i,children:e})})})}function Ah(t,e){const n=new Blob([t],{type:"application/json"}),r=URL.createObjectURL(n),o=document.createElement("a");o.href=r,o.download=`${e}.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(r)}function xp(t){const e=new Uint8Array(t);return window.crypto.getRandomValues(e),Array.from(e,n=>n.toString(16).padStart(2,"0")).join("")}const Ep=[{label:"Private",value:"PRIVATE",icon:O.jsx(al,{})},{label:"Unlisted, anyone with the link can view",value:"UNLISTED",icon:O.jsx(wh,{})},{label:"Public",value:"PUBLIC",icon:O.jsx(Ch,{})}],Cp=()=>{const t=Pe.graph._nodes,e={};for(let n of t)if(n.type in LiteGraph.registered_node_types){const r=structuredClone(LiteGraph.registered_node_types[n.type].nodeData);if(r==null)continue;for(let o in r.input){const s=r.input[o];for(let i in s){const a=s[i];Array.isArray(a[0])&&(a[0]=["value_1","value_2"])}}e[n.type]=r}return e};async function Nh(t){const e=t.cloudOrigin;if(!e)throw Error("cloudURL is required");return fetch(e+`/api/getWorkflow?id=${t.cloudID}`).then(n=>n.json()).then(n=>{var o;return((o=n.data)==null?void 0:o.privacy)??"PRIVATE"})}function Sp({privacy:t,showEmoji:e=!1}){let n;return t==="PRIVATE"?(n="Private",e&&(n="🔒 Private")):t==="UNLISTED"?(n="Unlisted",e&&(n="🔗 Unlisted")):t==="PUBLIC"&&(n="Public",e&&(n="🌐 Public")),O.jsx("span",{children:n})}function Fh({}){const[t,e]=j.useState(),[n,r]=j.useState(),{curFlowID:o}=j.useContext(wt);return j.useEffect(()=>{o&&(q==null||q.get(o).then(s=>{s!=null&&s.cloudID?(e(s.cloudOrigin+"/workflow/"+s.cloudID),Nh(s).then(i=>{r(i)})):e(void 0)}))},[o]),t?O.jsx("a",{href:t,style:{textDecoration:"none"},target:"_blank",children:O.jsx(Oa,{children:O.jsx(Xr,{children:n==="PUBLIC"?"🌐":n==="UNLISTED"?"🔗":"🔒"})})}):null}const Rh=j.lazy(()=>At(()=>import("./ShareDialog-gnVPTurL.js"),__vite__mapDeps([0,1,2,3,4,5])));function Th(){var k;const{curFlowID:t,loadWorkflowID:e,discardUnsavedChanges:n,saveCurWorkflow:r,setRoute:o,route:s}=j.useContext(wt),[i,a]=j.useState(!1),[l,u]=j.useState(""),[c,d]=j.useState(""),[p,h]=j.useState(),[b,f]=j.useState({save:"",saveAs:""});j.useEffect(()=>{t&&(q==null||q.get(t).then(x=>{u((x==null?void 0:x.name)??""),h(x)})),Y==null||Y.getSetting("shortcuts").then(x=>{f(x)})},[t]);const y=x=>{u(x.target.value),c&&d("")},m=async()=>{if(!t){alert("Flow ID is required");return}const x=JSON.stringify(Pe.graph.serialize()),I=await(q==null?void 0:q.createFlow({json:x,name:l,parentFolderID:p==null?void 0:p.parentFolderID}));I&&await e(I.id,null,!0),w()},w=()=>{o("root")},_=j.useCallback(async()=>{const x=q==null?void 0:q.curWorkflow;if(!x){alert("No current workflow!");return}const I=Pe.graph.serialize(),E=JSON.stringify(I,null,2);Ah(E,x.name)},[t]);return O.jsxs(O.Fragment,{children:[O.jsx(jh,{menuButton:O.jsx(Oa,{children:O.jsxs(Le,{px:1,height:Ls+"px","aria-label":"menu",size:"sm",backgroundColor:"#434554",children:["File",O.jsx(hh,{size:20})]})}),menuContent:O.jsx(Cs,{isOpen:!0,children:O.jsxs(Ss,{minWidth:150,zIndex:1e3,children:[O.jsx(bt,{onClick:()=>r(),icon:O.jsx(Rr,{size:20}),iconSpacing:1,command:b.save,children:"Save"}),!((k=Y==null?void 0:Y.settings)!=null&&k.autoSave)&&O.jsx(Ht,{label:"Revert workflow to your last saved version. You will lose all changes made since your last save.",children:O.jsx(bt,{onClick:n,icon:O.jsx(fh,{size:20}),iconSpacing:1,children:"Discard unsaved changes"})}),O.jsx(bt,{onClick:_,icon:O.jsx(ph,{size:20}),iconSpacing:1,children:"Download"}),O.jsx(bt,{onClick:()=>o("saveAsModal"),icon:O.jsx(Rr,{size:20}),iconSpacing:1,command:b.saveAs,children:"Save As"}),O.jsx(bt,{onClick:()=>a(!0),icon:O.jsx(Eh,{size:20}),iconSpacing:1,children:"Create Version"}),O.jsx(bt,{onClick:()=>o("versionHistory"),icon:O.jsx(gh,{size:20}),iconSpacing:1,children:"Versions History"}),O.jsx(bt,{onClick:()=>o("share"),icon:O.jsx(kh,{size:20}),iconSpacing:1,alignItems:"center",children:O.jsxs(zt,{children:[O.jsx("p",{children:"Share"})," ",O.jsx(Xr,{size:"sm",children:"🧪beta"}),O.jsx(Fh,{})]})})]})})}),s==="share"&&O.jsx(Rh,{onClose:()=>o("root")}),s=="versionHistory"&&O.jsx(Ih,{onClose:()=>o("root")}),s==="saveAsModal"&&O.jsxs(as,{isOpen:!0,onClose:w,children:[O.jsx(is,{}),O.jsxs(ls,{children:[O.jsx(cs,{children:"Save As"}),O.jsx(us,{}),O.jsx(ds,{children:O.jsxs(qr,{isInvalid:!!c,children:[O.jsx(Vr,{children:"Workflow name"}),O.jsx(Un,{value:l,onChange:y,autoFocus:!0,onKeyUp:x=>{x.code==="Enter"&&!c&&l&&m()}}),c&&O.jsx(Hr,{children:c})]})}),O.jsxs(fs,{children:[O.jsx(Le,{colorScheme:"teal",mr:3,onClick:m,isDisabled:!l||!!c,children:"Save"}),O.jsx(Le,{onClick:w,children:"Cancel"})]})]})]}),i&&O.jsx(Dh,{workflowId:t,onClose:()=>a(!1)})]})}function Bh({displayName:t,updateFlowName:e,isDirty:n}){const{isOpen:r,onOpen:o,onClose:s}=bc(),{curFlowID:i}=j.useContext(wt),[a,l]=j.useState(t),[u,c]=j.useState(""),d=()=>{l(t),o()},p=f=>{l(f.target.value),u&&c("")},h=async()=>{var f;if(i){const y=a.trim();if(l(y),t===y)return b();await(q==null?void 0:q.generateUniqueName(y,((f=q.curWorkflow)==null?void 0:f.parentFolderID)??""))!==y?c("The name is duplicated, please modify it and submit again."):(await(q==null?void 0:q.updateName(i,{name:y})),e(y),b())}},b=()=>{c(""),s()};return i==null?null:O.jsxs(zt,{children:[O.jsx(Ht,{label:t,placement:"bottom",children:O.jsxs(Mt,{as:"div",color:"white",onClick:d,maxW:160,fontWeight:500,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:[O.jsx("div",{style:{width:8,display:"inline-block"},children:O.jsx(Mt,{as:"span",children:n&&"* "})}),t]})}),O.jsxs(as,{isOpen:r,onClose:b,children:[O.jsx(is,{}),O.jsxs(ls,{children:[O.jsx(cs,{children:"Edit workflow name"}),O.jsx(us,{}),O.jsx(ds,{children:O.jsxs(qr,{isInvalid:!!u,children:[O.jsx(Vr,{children:"Workflow name"}),O.jsx(Un,{value:a,onChange:p,autoFocus:!0,onKeyUp:f=>{f.code==="Enter"&&!u&&a&&h()}}),u&&O.jsx(Hr,{children:u})]})}),O.jsxs(fs,{children:[O.jsx(Le,{colorScheme:"teal",mr:3,onClick:h,isDisabled:!a||!!u,children:"Save"}),O.jsx(Le,{onClick:b,children:"Cancel"})]})]})]})]})}function Mh({}){const{setRoute:t,curVersion:e,isDirty:n,setCurVersion:r}=j.useContext(wt);return j.useEffect(()=>{n&&e&&(e==null?void 0:e.name.endsWith("*"))===!1&&(r==null||r({...e,name:e.name+"*"}))},[n]),e?O.jsx(xn,{alignItems:"center",children:O.jsx(Ra,{size:"sm",isAttached:!0,variant:"outline",children:O.jsx(Le,{rightIcon:O.jsx(il,{size:10}),onClick:()=>t("versionHistory"),children:e.name})})}):null}function zh(){const{loadNewWorkflow:t,setCurFlowIDAndName:e,curFlowID:n}=j.useContext(wt),r=async()=>{const o=JSON.stringify(Pe.graph.serialize()),s=prompt("Enter workflow name","Untitled");if(!s)return;const i=await(q==null?void 0:q.createFlow({json:o,name:s}));i&&e(i)};return O.jsx(Ht,{label:n?"New workflow":"Save workflow",children:O.jsx(Le,{size:"sm",variant:"outline",colorScheme:"teal","aria-label":"new workflow",height:Ls+"px",onClick:()=>n?t():r(),px:1,children:n?O.jsx(_h,{size:16,color:"white"}):O.jsx(Rr,{size:16,color:"white"})})})}const Lh=j.lazy(()=>At(()=>import("./AppIsDirtyEventListener-4QIATPDH.js"),__vite__mapDeps([6,1,7]))),Wh=j.lazy(()=>At(()=>import("./ModelManagerTopbar-SNvLsit2.js"),__vite__mapDeps([8,1,3,2,9,10,11]))),Uh=j.lazy(()=>At(()=>import("./SpotlightSearch-pfa51tE-.js"),__vite__mapDeps([12,1,7,13,14])));function Kh({curFlowName:t,setCurFlowName:e}){var c;const{isDirty:n,saveCurWorkflow:r,setRoute:o,curFlowID:s,route:i}=j.useContext(wt),[a,l]=j.useState(),u=j.useCallback((d,p=!1)=>{const{top:h=0,left:b=0}=a||{};let{top:f=0,left:y=0}=d??{};f+=h,y+=b;const m=document.documentElement.clientWidth,w=document.documentElement.clientHeight,_=document.getElementById("workspaceManagerPanel"),k=(_==null?void 0:_.offsetWidth)||392;f+36>w&&(f=w-36),y+k>=m&&(y=m-k),l({top:Math.max(0,f),left:Math.max(0,y)}),p&&(Y==null||Y.upsert({topBarStyle:{top:f,left:y}}))},[a]);return j.useEffect(()=>{Y==null||Y.getSetting("topBarStyle").then(d=>{u(d,!1)})},[]),a?O.jsx(sh,{onDragEnd:d=>{u({top:d.y,left:d.x},!0)},dragIconId:"dragPanelIcon",children:O.jsxs(zt,{style:{padding:2,position:"fixed",...a},justifyContent:"space-between",alignItems:"center",gap:2,draggable:!1,id:"workspaceManagerPanel",className:"workspaceManagerPanel",children:[O.jsx(Le,{size:"sm","aria-label":"workspace folder",height:Ls+"px",onClick:()=>o("recentFlows"),px:2,children:O.jsxs(zt,{gap:1,children:[O.jsx(yh,{size:21}),O.jsx(il,{size:8})]})}),O.jsx(j.Suspense,{fallback:O.jsx("div",{style:{width:"60px"}}),children:O.jsx(Wh,{})}),O.jsx(zh,{}),O.jsx(Bh,{isDirty:n,displayName:t??"",updateFlowName:d=>{e(d),requestAnimationFrame(()=>{u()})}}),((c=q==null?void 0:q.curWorkflow)==null?void 0:c.saveLock)&&O.jsx(al,{color:"#FFF",size:20}),s&&O.jsxs(zt,{gap:"4px",children:[O.jsx(Ht,{label:"Open gallery",children:O.jsx(jn,{onClick:()=>o("gallery"),icon:O.jsx(bh,{size:22,color:"white"}),size:"sm","aria-label":"open gallery",variant:"ghost"})}),O.jsx(Th,{})]}),s&&n?O.jsx(Ht,{label:"Save workflow",children:O.jsx(jn,{onClick:()=>r(),icon:O.jsx(Rr,{size:23,color:"white"}),size:"xs",paddingY:4,"aria-label":"save workspace",variant:"ghost"})}):O.jsx("div",{style:{width:1}}),O.jsx(Mh,{}),O.jsx(Lh,{}),O.jsx(vh,{id:"dragPanelIcon",className:"dragPanelIcon",cursor:"move",size:15,color:"#FFF"}),i==="spotlightSearch"&&O.jsx(Uh,{})]})}):null}function $h(){const{showDialog:t}=Ia(),{loadWorkflowID:e}=j.useContext(wt),n=async(o,s)=>{var u,c;const{workflow:i,version:a}=o.detail;if(!i.id||!a.id)return;const l=(u=await(q==null?void 0:q.listByIndex("cloudID",i.id)))==null?void 0:u.at(0);if(l){const d=(c=await(ge==null?void 0:ge.listByIndex("cloudID",a.id)))==null?void 0:c.at(0);if(d)await e(l.id,d.id);else{const p=await(ge==null?void 0:ge.add({id:a.id,cloudID:a.id,workflowID:l.id,cloudOrigin:s,name:a.name,authorID:a.authorID,json:a.json}));p&&e(l.id,p.id)}}else{const d=await(q==null?void 0:q.createFlow({cloudID:i.id,cloudOrigin:s,name:i.name,json:a.json,updateTime:Date.now()}));if(!d){alert("Failed to add workflow to local db");return}const p=await(ge==null?void 0:ge.put({id:a.id,cloudID:a.id,workflowID:d.id,cloudOrigin:s,name:a.name,json:a.json,authorID:a.authorID,createTime:Date.now()}));await e(d.id,p==null?void 0:p.id)}},r=async o=>{const s=o.data;if(qh(s)){const i=o.origin;t(`Open workflow "${s.detail.workflow.name}", version "${s.detail.version.name}" from ${i}`,[{label:"Open",colorScheme:"teal",onClick:()=>{n(s,i)}}])}};return j.useEffect(()=>{window.opener&&window.opener.postMessage("comfyui_workspace_manager_connected","*"),window.addEventListener("message",r)},[]),null}function qh(t){return t.type==="workspace_open_workflow"}const Hh=t=>typeof t=="function",Vh=t=>{const[e,n]=j.useState(t),r=j.useRef(e),o=j.useCallback(s=>{r.current=Hh(s)?s(r.current):s,n(r.current)},[]);return[e,o,r]};function lr(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var ll={exports:{}};/*! + +JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/main/LICENSE +*/(function(t,e){(function(n){t.exports=n()})(function(){return function n(r,o,s){function i(u,c){if(!o[u]){if(!r[u]){var d=typeof lr=="function"&&lr;if(!c&&d)return d(u,!0);if(a)return a(u,!0);var p=new Error("Cannot find module '"+u+"'");throw p.code="MODULE_NOT_FOUND",p}var h=o[u]={exports:{}};r[u][0].call(h.exports,function(b){var f=r[u][1][b];return i(f||b)},h,h.exports,n,r,o,s)}return o[u].exports}for(var a=typeof lr=="function"&&lr,l=0;l>2,h=(3&u)<<4|c>>4,b=1<_?(15&c)<<2|d>>6:64,f=2<_?63&d:64,y.push(a.charAt(p)+a.charAt(h)+a.charAt(b)+a.charAt(f));return y.join("")},o.decode=function(l){var u,c,d,p,h,b,f=0,y=0,m="data:";if(l.substr(0,m.length)===m)throw new Error("Invalid base64 input, it looks like a data url.");var w,_=3*(l=l.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(l.charAt(l.length-1)===a.charAt(64)&&_--,l.charAt(l.length-2)===a.charAt(64)&&_--,_%1!=0)throw new Error("Invalid base64 input, bad content length.");for(w=i.uint8array?new Uint8Array(0|_):new Array(0|_);f>4,c=(15&p)<<4|(h=a.indexOf(l.charAt(f++)))>>2,d=(3&h)<<6|(b=a.indexOf(l.charAt(f++))),w[y++]=u,h!==64&&(w[y++]=c),b!==64&&(w[y++]=d);return w}},{"./support":30,"./utils":32}],2:[function(n,r,o){var s=n("./external"),i=n("./stream/DataWorker"),a=n("./stream/Crc32Probe"),l=n("./stream/DataLengthProbe");function u(c,d,p,h,b){this.compressedSize=c,this.uncompressedSize=d,this.crc32=p,this.compression=h,this.compressedContent=b}u.prototype={getContentWorker:function(){var c=new i(s.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new l("data_length")),d=this;return c.on("end",function(){if(this.streamInfo.data_length!==d.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),c},getCompressedWorker:function(){return new i(s.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},u.createWorkerFrom=function(c,d,p){return c.pipe(new a).pipe(new l("uncompressedSize")).pipe(d.compressWorker(p)).pipe(new l("compressedSize")).withStreamInfo("compression",d)},r.exports=u},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(n,r,o){var s=n("./stream/GenericWorker");o.STORE={magic:"\0\0",compressWorker:function(){return new s("STORE compression")},uncompressWorker:function(){return new s("STORE decompression")}},o.DEFLATE=n("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(n,r,o){var s=n("./utils"),i=function(){for(var a,l=[],u=0;u<256;u++){a=u;for(var c=0;c<8;c++)a=1&a?3988292384^a>>>1:a>>>1;l[u]=a}return l}();r.exports=function(a,l){return a!==void 0&&a.length?s.getTypeOf(a)!=="string"?function(u,c,d,p){var h=i,b=p+d;u^=-1;for(var f=p;f>>8^h[255&(u^c[f])];return-1^u}(0|l,a,a.length,0):function(u,c,d,p){var h=i,b=p+d;u^=-1;for(var f=p;f>>8^h[255&(u^c.charCodeAt(f))];return-1^u}(0|l,a,a.length,0):0}},{"./utils":32}],5:[function(n,r,o){o.base64=!1,o.binary=!1,o.dir=!1,o.createFolders=!0,o.date=null,o.compression=null,o.compressionOptions=null,o.comment=null,o.unixPermissions=null,o.dosPermissions=null},{}],6:[function(n,r,o){var s=null;s=typeof Promise<"u"?Promise:n("lie"),r.exports={Promise:s}},{lie:37}],7:[function(n,r,o){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",i=n("pako"),a=n("./utils"),l=n("./stream/GenericWorker"),u=s?"uint8array":"array";function c(d,p){l.call(this,"FlateWorker/"+d),this._pako=null,this._pakoAction=d,this._pakoOptions=p,this.meta={}}o.magic="\b\0",a.inherits(c,l),c.prototype.processChunk=function(d){this.meta=d.meta,this._pako===null&&this._createPako(),this._pako.push(a.transformTo(u,d.data),!1)},c.prototype.flush=function(){l.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){l.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var d=this;this._pako.onData=function(p){d.push({data:p,meta:d.meta})}},o.compressWorker=function(d){return new c("Deflate",d)},o.uncompressWorker=function(){return new c("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(n,r,o){function s(h,b){var f,y="";for(f=0;f>>=8;return y}function i(h,b,f,y,m,w){var _,k,x=h.file,I=h.compression,E=w!==u.utf8encode,N=a.transformTo("string",w(x.name)),D=a.transformTo("string",u.utf8encode(x.name)),R=x.comment,$=a.transformTo("string",w(R)),P=a.transformTo("string",u.utf8encode(R)),B=D.length!==x.name.length,v=P.length!==R.length,T="",H="",A="",X=x.dir,K=x.date,ne={crc32:0,compressedSize:0,uncompressedSize:0};b&&!f||(ne.crc32=h.crc32,ne.compressedSize=h.compressedSize,ne.uncompressedSize=h.uncompressedSize);var z=0;b&&(z|=8),E||!B&&!v||(z|=2048);var M=0,te=0;X&&(M|=16),m==="UNIX"?(te=798,M|=function(G,me){var we=G;return G||(we=me?16893:33204),(65535&we)<<16}(x.unixPermissions,X)):(te=20,M|=function(G){return 63&(G||0)}(x.dosPermissions)),_=K.getUTCHours(),_<<=6,_|=K.getUTCMinutes(),_<<=5,_|=K.getUTCSeconds()/2,k=K.getUTCFullYear()-1980,k<<=4,k|=K.getUTCMonth()+1,k<<=5,k|=K.getUTCDate(),B&&(H=s(1,1)+s(c(N),4)+D,T+="up"+s(H.length,2)+H),v&&(A=s(1,1)+s(c($),4)+P,T+="uc"+s(A.length,2)+A);var J="";return J+=` +\0`,J+=s(z,2),J+=I.magic,J+=s(_,2),J+=s(k,2),J+=s(ne.crc32,4),J+=s(ne.compressedSize,4),J+=s(ne.uncompressedSize,4),J+=s(N.length,2),J+=s(T.length,2),{fileRecord:d.LOCAL_FILE_HEADER+J+N+T,dirRecord:d.CENTRAL_FILE_HEADER+s(te,2)+J+s($.length,2)+"\0\0\0\0"+s(M,4)+s(y,4)+N+T+$}}var a=n("../utils"),l=n("../stream/GenericWorker"),u=n("../utf8"),c=n("../crc32"),d=n("../signature");function p(h,b,f,y){l.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=f,this.encodeFileName=y,this.streamFiles=h,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}a.inherits(p,l),p.prototype.push=function(h){var b=h.meta.percent||0,f=this.entriesCount,y=this._sources.length;this.accumulate?this.contentBuffer.push(h):(this.bytesWritten+=h.data.length,l.prototype.push.call(this,{data:h.data,meta:{currentFile:this.currentFile,percent:f?(b+100*(f-y-1))/f:100}}))},p.prototype.openedSource=function(h){this.currentSourceOffset=this.bytesWritten,this.currentFile=h.file.name;var b=this.streamFiles&&!h.file.dir;if(b){var f=i(h,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:f.fileRecord,meta:{percent:0}})}else this.accumulate=!0},p.prototype.closedSource=function(h){this.accumulate=!1;var b=this.streamFiles&&!h.file.dir,f=i(h,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(f.dirRecord),b)this.push({data:function(y){return d.DATA_DESCRIPTOR+s(y.crc32,4)+s(y.compressedSize,4)+s(y.uncompressedSize,4)}(h),meta:{percent:100}});else for(this.push({data:f.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},p.prototype.flush=function(){for(var h=this.bytesWritten,b=0;b=this.index;l--)u=(u<<8)+this.byteAt(l);return this.index+=a,u},readString:function(a){return s.transformTo("string",this.readData(a))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC(1980+(a>>25&127),(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},r.exports=i},{"../utils":32}],19:[function(n,r,o){var s=n("./Uint8ArrayReader");function i(a){s.call(this,a)}n("../utils").inherits(i,s),i.prototype.readData=function(a){this.checkOffset(a);var l=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,l},r.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(n,r,o){var s=n("./DataReader");function i(a){s.call(this,a)}n("../utils").inherits(i,s),i.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},i.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},i.prototype.readAndCheckSignature=function(a){return a===this.readData(4)},i.prototype.readData=function(a){this.checkOffset(a);var l=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,l},r.exports=i},{"../utils":32,"./DataReader":18}],21:[function(n,r,o){var s=n("./ArrayReader");function i(a){s.call(this,a)}n("../utils").inherits(i,s),i.prototype.readData=function(a){if(this.checkOffset(a),a===0)return new Uint8Array(0);var l=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,l},r.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(n,r,o){var s=n("../utils"),i=n("../support"),a=n("./ArrayReader"),l=n("./StringReader"),u=n("./NodeBufferReader"),c=n("./Uint8ArrayReader");r.exports=function(d){var p=s.getTypeOf(d);return s.checkSupport(p),p!=="string"||i.uint8array?p==="nodebuffer"?new u(d):i.uint8array?new c(s.transformTo("uint8array",d)):new a(s.transformTo("array",d)):new l(d)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(n,r,o){o.LOCAL_FILE_HEADER="PK",o.CENTRAL_FILE_HEADER="PK",o.CENTRAL_DIRECTORY_END="PK",o.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",o.ZIP64_CENTRAL_DIRECTORY_END="PK",o.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(n,r,o){var s=n("./GenericWorker"),i=n("../utils");function a(l){s.call(this,"ConvertWorker to "+l),this.destType=l}i.inherits(a,s),a.prototype.processChunk=function(l){this.push({data:i.transformTo(this.destType,l.data),meta:l.meta})},r.exports=a},{"../utils":32,"./GenericWorker":28}],25:[function(n,r,o){var s=n("./GenericWorker"),i=n("../crc32");function a(){s.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}n("../utils").inherits(a,s),a.prototype.processChunk=function(l){this.streamInfo.crc32=i(l.data,this.streamInfo.crc32||0),this.push(l)},r.exports=a},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(n,r,o){var s=n("../utils"),i=n("./GenericWorker");function a(l){i.call(this,"DataLengthProbe for "+l),this.propName=l,this.withStreamInfo(l,0)}s.inherits(a,i),a.prototype.processChunk=function(l){if(l){var u=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=u+l.data.length}i.prototype.processChunk.call(this,l)},r.exports=a},{"../utils":32,"./GenericWorker":28}],27:[function(n,r,o){var s=n("../utils"),i=n("./GenericWorker");function a(l){i.call(this,"DataWorker");var u=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,l.then(function(c){u.dataIsReady=!0,u.data=c,u.max=c&&c.length||0,u.type=s.getTypeOf(c),u.isPaused||u._tickAndRepeat()},function(c){u.error(c)})}s.inherits(a,i),a.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},a.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,s.delay(this._tickAndRepeat,[],this)),!0)},a.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(s.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},a.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var l=null,u=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":l=this.data.substring(this.index,u);break;case"uint8array":l=this.data.subarray(this.index,u);break;case"array":case"nodebuffer":l=this.data.slice(this.index,u)}return this.index=u,this.push({data:l,meta:{percent:this.max?this.index/this.max*100:0}})},r.exports=a},{"../utils":32,"./GenericWorker":28}],28:[function(n,r,o){function s(i){this.name=i||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}s.prototype={push:function(i){this.emit("data",i)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(i){this.emit("error",i)}return!0},error:function(i){return!this.isFinished&&(this.isPaused?this.generatedError=i:(this.isFinished=!0,this.emit("error",i),this.previous&&this.previous.error(i),this.cleanUp()),!0)},on:function(i,a){return this._listeners[i].push(a),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(i,a){if(this._listeners[i])for(var l=0;l "+i:i}},r.exports=s},{}],29:[function(n,r,o){var s=n("../utils"),i=n("./ConvertWorker"),a=n("./GenericWorker"),l=n("../base64"),u=n("../support"),c=n("../external"),d=null;if(u.nodestream)try{d=n("../nodejs/NodejsStreamOutputAdapter")}catch{}function p(b,f){return new c.Promise(function(y,m){var w=[],_=b._internalType,k=b._outputType,x=b._mimeType;b.on("data",function(I,E){w.push(I),f&&f(E)}).on("error",function(I){w=[],m(I)}).on("end",function(){try{var I=function(E,N,D){switch(E){case"blob":return s.newBlob(s.transformTo("arraybuffer",N),D);case"base64":return l.encode(N);default:return s.transformTo(E,N)}}(k,function(E,N){var D,R=0,$=null,P=0;for(D=0;D"u")o.blob=!1;else{var s=new ArrayBuffer(0);try{o.blob=new Blob([s],{type:"application/zip"}).size===0}catch{try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(s),o.blob=i.getBlob("application/zip").size===0}catch{o.blob=!1}}}try{o.nodestream=!!n("readable-stream").Readable}catch{o.nodestream=!1}},{"readable-stream":16}],31:[function(n,r,o){for(var s=n("./utils"),i=n("./support"),a=n("./nodejsUtils"),l=n("./stream/GenericWorker"),u=new Array(256),c=0;c<256;c++)u[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;u[254]=u[254]=1;function d(){l.call(this,"utf-8 decode"),this.leftOver=null}function p(){l.call(this,"utf-8 encode")}o.utf8encode=function(h){return i.nodebuffer?a.newBufferFrom(h,"utf-8"):function(b){var f,y,m,w,_,k=b.length,x=0;for(w=0;w>>6:(y<65536?f[_++]=224|y>>>12:(f[_++]=240|y>>>18,f[_++]=128|y>>>12&63),f[_++]=128|y>>>6&63),f[_++]=128|63&y);return f}(h)},o.utf8decode=function(h){return i.nodebuffer?s.transformTo("nodebuffer",h).toString("utf-8"):function(b){var f,y,m,w,_=b.length,k=new Array(2*_);for(f=y=0;f<_;)if((m=b[f++])<128)k[y++]=m;else if(4<(w=u[m]))k[y++]=65533,f+=w-1;else{for(m&=w===2?31:w===3?15:7;1>10&1023,k[y++]=56320|1023&m)}return k.length!==y&&(k.subarray?k=k.subarray(0,y):k.length=y),s.applyFromCharCode(k)}(h=s.transformTo(i.uint8array?"uint8array":"array",h))},s.inherits(d,l),d.prototype.processChunk=function(h){var b=s.transformTo(i.uint8array?"uint8array":"array",h.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var f=b;(b=new Uint8Array(f.length+this.leftOver.length)).set(this.leftOver,0),b.set(f,this.leftOver.length)}else b=this.leftOver.concat(b);this.leftOver=null}var y=function(w,_){var k;for((_=_||w.length)>w.length&&(_=w.length),k=_-1;0<=k&&(192&w[k])==128;)k--;return k<0||k===0?_:k+u[w[k]]>_?k:_}(b),m=b;y!==b.length&&(i.uint8array?(m=b.subarray(0,y),this.leftOver=b.subarray(y,b.length)):(m=b.slice(0,y),this.leftOver=b.slice(y,b.length))),this.push({data:o.utf8decode(m),meta:h.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:o.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},o.Utf8DecodeWorker=d,s.inherits(p,l),p.prototype.processChunk=function(h){this.push({data:o.utf8encode(h.data),meta:h.meta})},o.Utf8EncodeWorker=p},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(n,r,o){var s=n("./support"),i=n("./base64"),a=n("./nodejsUtils"),l=n("./external");function u(f){return f}function c(f,y){for(var m=0;m>8;this.dir=!!(16&this.externalFileAttributes),h==0&&(this.dosPermissions=63&this.externalFileAttributes),h==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var h=s(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=h.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=h.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=h.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=h.readInt(4))}},readExtraFields:function(h){var b,f,y,m=h.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});h.index+4>>6:(h<65536?p[y++]=224|h>>>12:(p[y++]=240|h>>>18,p[y++]=128|h>>>12&63),p[y++]=128|h>>>6&63),p[y++]=128|63&h);return p},o.buf2binstring=function(d){return c(d,d.length)},o.binstring2buf=function(d){for(var p=new s.Buf8(d.length),h=0,b=p.length;h>10&1023,w[b++]=56320|1023&f)}return c(w,b)},o.utf8border=function(d,p){var h;for((p=p||d.length)>d.length&&(p=d.length),h=p-1;0<=h&&(192&d[h])==128;)h--;return h<0||h===0?p:h+l[d[h]]>p?h:p}},{"./common":41}],43:[function(n,r,o){r.exports=function(s,i,a,l){for(var u=65535&s|0,c=s>>>16&65535|0,d=0;a!==0;){for(a-=d=2e3>>1:i>>>1;a[l]=i}return a}();r.exports=function(i,a,l,u){var c=s,d=u+l;i^=-1;for(var p=u;p>>8^c[255&(i^a[p])];return-1^i}},{}],46:[function(n,r,o){var s,i=n("../utils/common"),a=n("./trees"),l=n("./adler32"),u=n("./crc32"),c=n("./messages"),d=0,p=4,h=0,b=-2,f=-1,y=4,m=2,w=8,_=9,k=286,x=30,I=19,E=2*k+1,N=15,D=3,R=258,$=R+D+1,P=42,B=113,v=1,T=2,H=3,A=4;function X(g,U){return g.msg=c[U],U}function K(g){return(g<<1)-(4g.avail_out&&(W=g.avail_out),W!==0&&(i.arraySet(g.output,U.pending_buf,U.pending_out,W,g.next_out),g.next_out+=W,U.pending_out+=W,g.total_out+=W,g.avail_out-=W,U.pending-=W,U.pending===0&&(U.pending_out=0))}function M(g,U){a._tr_flush_block(g,0<=g.block_start?g.block_start:-1,g.strstart-g.block_start,U),g.block_start=g.strstart,z(g.strm)}function te(g,U){g.pending_buf[g.pending++]=U}function J(g,U){g.pending_buf[g.pending++]=U>>>8&255,g.pending_buf[g.pending++]=255&U}function G(g,U){var W,S,C=g.max_chain_length,F=g.strstart,V=g.prev_length,Z=g.nice_match,L=g.strstart>g.w_size-$?g.strstart-(g.w_size-$):0,Q=g.window,re=g.w_mask,ee=g.prev,se=g.strstart+R,ve=Q[F+V-1],he=Q[F+V];g.prev_length>=g.good_match&&(C>>=2),Z>g.lookahead&&(Z=g.lookahead);do if(Q[(W=U)+V]===he&&Q[W+V-1]===ve&&Q[W]===Q[F]&&Q[++W]===Q[F+1]){F+=2,W++;do;while(Q[++F]===Q[++W]&&Q[++F]===Q[++W]&&Q[++F]===Q[++W]&&Q[++F]===Q[++W]&&Q[++F]===Q[++W]&&Q[++F]===Q[++W]&&Q[++F]===Q[++W]&&Q[++F]===Q[++W]&&FL&&--C!=0);return V<=g.lookahead?V:g.lookahead}function me(g){var U,W,S,C,F,V,Z,L,Q,re,ee=g.w_size;do{if(C=g.window_size-g.lookahead-g.strstart,g.strstart>=ee+(ee-$)){for(i.arraySet(g.window,g.window,ee,ee,0),g.match_start-=ee,g.strstart-=ee,g.block_start-=ee,U=W=g.hash_size;S=g.head[--U],g.head[U]=ee<=S?S-ee:0,--W;);for(U=W=ee;S=g.prev[--U],g.prev[U]=ee<=S?S-ee:0,--W;);C+=ee}if(g.strm.avail_in===0)break;if(V=g.strm,Z=g.window,L=g.strstart+g.lookahead,Q=C,re=void 0,re=V.avail_in,Q=D)for(F=g.strstart-g.insert,g.ins_h=g.window[F],g.ins_h=(g.ins_h<=D&&(g.ins_h=(g.ins_h<=D)if(S=a._tr_tally(g,g.strstart-g.match_start,g.match_length-D),g.lookahead-=g.match_length,g.match_length<=g.max_lazy_match&&g.lookahead>=D){for(g.match_length--;g.strstart++,g.ins_h=(g.ins_h<=D&&(g.ins_h=(g.ins_h<=D&&g.match_length<=g.prev_length){for(C=g.strstart+g.lookahead-D,S=a._tr_tally(g,g.strstart-1-g.prev_match,g.prev_length-D),g.lookahead-=g.prev_length-1,g.prev_length-=2;++g.strstart<=C&&(g.ins_h=(g.ins_h<g.pending_buf_size-5&&(W=g.pending_buf_size-5);;){if(g.lookahead<=1){if(me(g),g.lookahead===0&&U===d)return v;if(g.lookahead===0)break}g.strstart+=g.lookahead,g.lookahead=0;var S=g.block_start+W;if((g.strstart===0||g.strstart>=S)&&(g.lookahead=g.strstart-S,g.strstart=S,M(g,!1),g.strm.avail_out===0)||g.strstart-g.block_start>=g.w_size-$&&(M(g,!1),g.strm.avail_out===0))return v}return g.insert=0,U===p?(M(g,!0),g.strm.avail_out===0?H:A):(g.strstart>g.block_start&&(M(g,!1),g.strm.avail_out),v)}),new ue(4,4,8,4,we),new ue(4,5,16,8,we),new ue(4,6,32,32,we),new ue(4,4,16,16,ie),new ue(8,16,32,32,ie),new ue(8,16,128,128,ie),new ue(8,32,128,256,ie),new ue(32,128,258,1024,ie),new ue(32,258,258,4096,ie)],o.deflateInit=function(g,U){return xe(g,U,w,15,8,0)},o.deflateInit2=xe,o.deflateReset=pe,o.deflateResetKeep=ye,o.deflateSetHeader=function(g,U){return g&&g.state?g.state.wrap!==2?b:(g.state.gzhead=U,h):b},o.deflate=function(g,U){var W,S,C,F;if(!g||!g.state||5>8&255),te(S,S.gzhead.time>>16&255),te(S,S.gzhead.time>>24&255),te(S,S.level===9?2:2<=S.strategy||S.level<2?4:0),te(S,255&S.gzhead.os),S.gzhead.extra&&S.gzhead.extra.length&&(te(S,255&S.gzhead.extra.length),te(S,S.gzhead.extra.length>>8&255)),S.gzhead.hcrc&&(g.adler=u(g.adler,S.pending_buf,S.pending,0)),S.gzindex=0,S.status=69):(te(S,0),te(S,0),te(S,0),te(S,0),te(S,0),te(S,S.level===9?2:2<=S.strategy||S.level<2?4:0),te(S,3),S.status=B);else{var V=w+(S.w_bits-8<<4)<<8;V|=(2<=S.strategy||S.level<2?0:S.level<6?1:S.level===6?2:3)<<6,S.strstart!==0&&(V|=32),V+=31-V%31,S.status=B,J(S,V),S.strstart!==0&&(J(S,g.adler>>>16),J(S,65535&g.adler)),g.adler=1}if(S.status===69)if(S.gzhead.extra){for(C=S.pending;S.gzindex<(65535&S.gzhead.extra.length)&&(S.pending!==S.pending_buf_size||(S.gzhead.hcrc&&S.pending>C&&(g.adler=u(g.adler,S.pending_buf,S.pending-C,C)),z(g),C=S.pending,S.pending!==S.pending_buf_size));)te(S,255&S.gzhead.extra[S.gzindex]),S.gzindex++;S.gzhead.hcrc&&S.pending>C&&(g.adler=u(g.adler,S.pending_buf,S.pending-C,C)),S.gzindex===S.gzhead.extra.length&&(S.gzindex=0,S.status=73)}else S.status=73;if(S.status===73)if(S.gzhead.name){C=S.pending;do{if(S.pending===S.pending_buf_size&&(S.gzhead.hcrc&&S.pending>C&&(g.adler=u(g.adler,S.pending_buf,S.pending-C,C)),z(g),C=S.pending,S.pending===S.pending_buf_size)){F=1;break}F=S.gzindexC&&(g.adler=u(g.adler,S.pending_buf,S.pending-C,C)),F===0&&(S.gzindex=0,S.status=91)}else S.status=91;if(S.status===91)if(S.gzhead.comment){C=S.pending;do{if(S.pending===S.pending_buf_size&&(S.gzhead.hcrc&&S.pending>C&&(g.adler=u(g.adler,S.pending_buf,S.pending-C,C)),z(g),C=S.pending,S.pending===S.pending_buf_size)){F=1;break}F=S.gzindexC&&(g.adler=u(g.adler,S.pending_buf,S.pending-C,C)),F===0&&(S.status=103)}else S.status=103;if(S.status===103&&(S.gzhead.hcrc?(S.pending+2>S.pending_buf_size&&z(g),S.pending+2<=S.pending_buf_size&&(te(S,255&g.adler),te(S,g.adler>>8&255),g.adler=0,S.status=B)):S.status=B),S.pending!==0){if(z(g),g.avail_out===0)return S.last_flush=-1,h}else if(g.avail_in===0&&K(U)<=K(W)&&U!==p)return X(g,-5);if(S.status===666&&g.avail_in!==0)return X(g,-5);if(g.avail_in!==0||S.lookahead!==0||U!==d&&S.status!==666){var Z=S.strategy===2?function(L,Q){for(var re;;){if(L.lookahead===0&&(me(L),L.lookahead===0)){if(Q===d)return v;break}if(L.match_length=0,re=a._tr_tally(L,0,L.window[L.strstart]),L.lookahead--,L.strstart++,re&&(M(L,!1),L.strm.avail_out===0))return v}return L.insert=0,Q===p?(M(L,!0),L.strm.avail_out===0?H:A):L.last_lit&&(M(L,!1),L.strm.avail_out===0)?v:T}(S,U):S.strategy===3?function(L,Q){for(var re,ee,se,ve,he=L.window;;){if(L.lookahead<=R){if(me(L),L.lookahead<=R&&Q===d)return v;if(L.lookahead===0)break}if(L.match_length=0,L.lookahead>=D&&0L.lookahead&&(L.match_length=L.lookahead)}if(L.match_length>=D?(re=a._tr_tally(L,1,L.match_length-D),L.lookahead-=L.match_length,L.strstart+=L.match_length,L.match_length=0):(re=a._tr_tally(L,0,L.window[L.strstart]),L.lookahead--,L.strstart++),re&&(M(L,!1),L.strm.avail_out===0))return v}return L.insert=0,Q===p?(M(L,!0),L.strm.avail_out===0?H:A):L.last_lit&&(M(L,!1),L.strm.avail_out===0)?v:T}(S,U):s[S.level].func(S,U);if(Z!==H&&Z!==A||(S.status=666),Z===v||Z===H)return g.avail_out===0&&(S.last_flush=-1),h;if(Z===T&&(U===1?a._tr_align(S):U!==5&&(a._tr_stored_block(S,0,0,!1),U===3&&(ne(S.head),S.lookahead===0&&(S.strstart=0,S.block_start=0,S.insert=0))),z(g),g.avail_out===0))return S.last_flush=-1,h}return U!==p?h:S.wrap<=0?1:(S.wrap===2?(te(S,255&g.adler),te(S,g.adler>>8&255),te(S,g.adler>>16&255),te(S,g.adler>>24&255),te(S,255&g.total_in),te(S,g.total_in>>8&255),te(S,g.total_in>>16&255),te(S,g.total_in>>24&255)):(J(S,g.adler>>>16),J(S,65535&g.adler)),z(g),0=W.w_size&&(F===0&&(ne(W.head),W.strstart=0,W.block_start=0,W.insert=0),Q=new i.Buf8(W.w_size),i.arraySet(Q,U,re-W.w_size,W.w_size,0),U=Q,re=W.w_size),V=g.avail_in,Z=g.next_in,L=g.input,g.avail_in=re,g.next_in=0,g.input=U,me(W);W.lookahead>=D;){for(S=W.strstart,C=W.lookahead-(D-1);W.ins_h=(W.ins_h<>>=D=N>>>24,_-=D,(D=N>>>16&255)===0)T[c++]=65535&N;else{if(!(16&D)){if(!(64&D)){N=k[(65535&N)+(w&(1<>>=D,_-=D),_<15&&(w+=v[l++]<<_,_+=8,w+=v[l++]<<_,_+=8),N=x[w&E];n:for(;;){if(w>>>=D=N>>>24,_-=D,!(16&(D=N>>>16&255))){if(!(64&D)){N=x[(65535&N)+(w&(1<>>=D,_-=D,(D=c-d)<$){if(f<(D=$-D)&&a.sane){s.msg="invalid distance too far back",a.mode=30;break e}if(B=m,(P=0)===y){if(P+=b-D,D>3,w&=(1<<(_-=R<<3))-1,s.next_in=l,s.next_out=c,s.avail_in=l>>24&255)+(P>>>8&65280)+((65280&P)<<8)+((255&P)<<24)}function w(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function _(P){var B;return P&&P.state?(B=P.state,P.total_in=P.total_out=B.total=0,P.msg="",B.wrap&&(P.adler=1&B.wrap),B.mode=b,B.last=0,B.havedict=0,B.dmax=32768,B.head=null,B.hold=0,B.bits=0,B.lencode=B.lendyn=new s.Buf32(f),B.distcode=B.distdyn=new s.Buf32(y),B.sane=1,B.back=-1,p):h}function k(P){var B;return P&&P.state?((B=P.state).wsize=0,B.whave=0,B.wnext=0,_(P)):h}function x(P,B){var v,T;return P&&P.state?(T=P.state,B<0?(v=0,B=-B):(v=1+(B>>4),B<48&&(B&=15)),B&&(B<8||15=A.wsize?(s.arraySet(A.window,B,v-A.wsize,A.wsize,0),A.wnext=0,A.whave=A.wsize):(T<(H=A.wsize-A.wnext)&&(H=T),s.arraySet(A.window,B,v-T,H,A.wnext),(T-=H)?(s.arraySet(A.window,B,v-T,T,0),A.wnext=T,A.whave=A.wsize):(A.wnext+=H,A.wnext===A.wsize&&(A.wnext=0),A.whave>>8&255,v.check=a(v.check,F,2,0),M=z=0,v.mode=2;break}if(v.flags=0,v.head&&(v.head.done=!1),!(1&v.wrap)||(((255&z)<<8)+(z>>8))%31){P.msg="incorrect header check",v.mode=30;break}if((15&z)!=8){P.msg="unknown compression method",v.mode=30;break}if(M-=4,g=8+(15&(z>>>=4)),v.wbits===0)v.wbits=g;else if(g>v.wbits){P.msg="invalid window size",v.mode=30;break}v.dmax=1<>8&1),512&v.flags&&(F[0]=255&z,F[1]=z>>>8&255,v.check=a(v.check,F,2,0)),M=z=0,v.mode=3;case 3:for(;M<32;){if(K===0)break e;K--,z+=T[A++]<>>8&255,F[2]=z>>>16&255,F[3]=z>>>24&255,v.check=a(v.check,F,4,0)),M=z=0,v.mode=4;case 4:for(;M<16;){if(K===0)break e;K--,z+=T[A++]<>8),512&v.flags&&(F[0]=255&z,F[1]=z>>>8&255,v.check=a(v.check,F,2,0)),M=z=0,v.mode=5;case 5:if(1024&v.flags){for(;M<16;){if(K===0)break e;K--,z+=T[A++]<>>8&255,v.check=a(v.check,F,2,0)),M=z=0}else v.head&&(v.head.extra=null);v.mode=6;case 6:if(1024&v.flags&&(K<(G=v.length)&&(G=K),G&&(v.head&&(g=v.head.extra_len-v.length,v.head.extra||(v.head.extra=new Array(v.head.extra_len)),s.arraySet(v.head.extra,T,A,G,g)),512&v.flags&&(v.check=a(v.check,T,G,A)),K-=G,A+=G,v.length-=G),v.length))break e;v.length=0,v.mode=7;case 7:if(2048&v.flags){if(K===0)break e;for(G=0;g=T[A+G++],v.head&&g&&v.length<65536&&(v.head.name+=String.fromCharCode(g)),g&&G>9&1,v.head.done=!0),P.adler=v.check=0,v.mode=12;break;case 10:for(;M<32;){if(K===0)break e;K--,z+=T[A++]<>>=7&M,M-=7&M,v.mode=27;break}for(;M<3;){if(K===0)break e;K--,z+=T[A++]<>>=1)){case 0:v.mode=14;break;case 1:if(R(v),v.mode=20,B!==6)break;z>>>=2,M-=2;break e;case 2:v.mode=17;break;case 3:P.msg="invalid block type",v.mode=30}z>>>=2,M-=2;break;case 14:for(z>>>=7&M,M-=7&M;M<32;){if(K===0)break e;K--,z+=T[A++]<>>16^65535)){P.msg="invalid stored block lengths",v.mode=30;break}if(v.length=65535&z,M=z=0,v.mode=15,B===6)break e;case 15:v.mode=16;case 16:if(G=v.length){if(K>>=5,M-=5,v.ndist=1+(31&z),z>>>=5,M-=5,v.ncode=4+(15&z),z>>>=4,M-=4,286>>=3,M-=3}for(;v.have<19;)v.lens[V[v.have++]]=0;if(v.lencode=v.lendyn,v.lenbits=7,W={bits:v.lenbits},U=u(0,v.lens,0,19,v.lencode,0,v.work,W),v.lenbits=W.bits,U){P.msg="invalid code lengths set",v.mode=30;break}v.have=0,v.mode=19;case 19:for(;v.have>>16&255,_e=65535&C,!((ie=C>>>24)<=M);){if(K===0)break e;K--,z+=T[A++]<>>=ie,M-=ie,v.lens[v.have++]=_e;else{if(_e===16){for(S=ie+2;M>>=ie,M-=ie,v.have===0){P.msg="invalid bit length repeat",v.mode=30;break}g=v.lens[v.have-1],G=3+(3&z),z>>>=2,M-=2}else if(_e===17){for(S=ie+3;M>>=ie)),z>>>=3,M-=3}else{for(S=ie+7;M>>=ie)),z>>>=7,M-=7}if(v.have+G>v.nlen+v.ndist){P.msg="invalid bit length repeat",v.mode=30;break}for(;G--;)v.lens[v.have++]=g}}if(v.mode===30)break;if(v.lens[256]===0){P.msg="invalid code -- missing end-of-block",v.mode=30;break}if(v.lenbits=9,W={bits:v.lenbits},U=u(c,v.lens,0,v.nlen,v.lencode,0,v.work,W),v.lenbits=W.bits,U){P.msg="invalid literal/lengths set",v.mode=30;break}if(v.distbits=6,v.distcode=v.distdyn,W={bits:v.distbits},U=u(d,v.lens,v.nlen,v.ndist,v.distcode,0,v.work,W),v.distbits=W.bits,U){P.msg="invalid distances set",v.mode=30;break}if(v.mode=20,B===6)break e;case 20:v.mode=21;case 21:if(6<=K&&258<=ne){P.next_out=X,P.avail_out=ne,P.next_in=A,P.avail_in=K,v.hold=z,v.bits=M,l(P,J),X=P.next_out,H=P.output,ne=P.avail_out,A=P.next_in,T=P.input,K=P.avail_in,z=v.hold,M=v.bits,v.mode===12&&(v.back=-1);break}for(v.back=0;ue=(C=v.lencode[z&(1<>>16&255,_e=65535&C,!((ie=C>>>24)<=M);){if(K===0)break e;K--,z+=T[A++]<>ye)])>>>16&255,_e=65535&C,!(ye+(ie=C>>>24)<=M);){if(K===0)break e;K--,z+=T[A++]<>>=ye,M-=ye,v.back+=ye}if(z>>>=ie,M-=ie,v.back+=ie,v.length=_e,ue===0){v.mode=26;break}if(32&ue){v.back=-1,v.mode=12;break}if(64&ue){P.msg="invalid literal/length code",v.mode=30;break}v.extra=15&ue,v.mode=22;case 22:if(v.extra){for(S=v.extra;M>>=v.extra,M-=v.extra,v.back+=v.extra}v.was=v.length,v.mode=23;case 23:for(;ue=(C=v.distcode[z&(1<>>16&255,_e=65535&C,!((ie=C>>>24)<=M);){if(K===0)break e;K--,z+=T[A++]<>ye)])>>>16&255,_e=65535&C,!(ye+(ie=C>>>24)<=M);){if(K===0)break e;K--,z+=T[A++]<>>=ye,M-=ye,v.back+=ye}if(z>>>=ie,M-=ie,v.back+=ie,64&ue){P.msg="invalid distance code",v.mode=30;break}v.offset=_e,v.extra=15&ue,v.mode=24;case 24:if(v.extra){for(S=v.extra;M>>=v.extra,M-=v.extra,v.back+=v.extra}if(v.offset>v.dmax){P.msg="invalid distance too far back",v.mode=30;break}v.mode=25;case 25:if(ne===0)break e;if(G=J-ne,v.offset>G){if((G=v.offset-G)>v.whave&&v.sane){P.msg="invalid distance too far back",v.mode=30;break}me=G>v.wnext?(G-=v.wnext,v.wsize-G):v.wnext-G,G>v.length&&(G=v.length),we=v.window}else we=H,me=X-v.offset,G=v.length;for(neE?(D=me[we+y[B]],M[te+y[B]]):(D=96,0),w=1<>X)+(_-=w)]=N<<24|D<<16|R|0,_!==0;);for(w=1<>=1;if(w!==0?(z&=w-1,z+=w):z=0,B++,--J[P]==0){if(P===T)break;P=d[p+y[B]]}if(H>>7)]}function te(C,F){C.pending_buf[C.pending++]=255&F,C.pending_buf[C.pending++]=F>>>8&255}function J(C,F,V){C.bi_valid>m-V?(C.bi_buf|=F<>m-C.bi_valid,C.bi_valid+=V-m):(C.bi_buf|=F<>>=1,V<<=1,0<--F;);return V>>>1}function we(C,F,V){var Z,L,Q=new Array(y+1),re=0;for(Z=1;Z<=y;Z++)Q[Z]=re=re+V[Z-1]<<1;for(L=0;L<=F;L++){var ee=C[2*L+1];ee!==0&&(C[2*L]=me(Q[ee]++,ee))}}function ie(C){var F;for(F=0;F>1;1<=V;V--)ye(C,Q,V);for(L=se;V=C.heap[1],C.heap[1]=C.heap[C.heap_len--],ye(C,Q,1),Z=C.heap[1],C.heap[--C.heap_max]=V,C.heap[--C.heap_max]=Z,Q[2*L]=Q[2*V]+Q[2*Z],C.depth[L]=(C.depth[V]>=C.depth[Z]?C.depth[V]:C.depth[Z])+1,Q[2*V+1]=Q[2*Z+1]=L,C.heap[1]=L++,ye(C,Q,1),2<=C.heap_len;);C.heap[--C.heap_max]=C.heap[1],function(he,Ge){var yn,rt,vn,je,Yn,to,ut=Ge.dyn_tree,Us=Ge.max_code,cl=Ge.stat_desc.static_tree,ul=Ge.stat_desc.has_stree,dl=Ge.stat_desc.extra_bits,Ks=Ge.stat_desc.extra_base,gn=Ge.stat_desc.max_length,Jn=0;for(je=0;je<=y;je++)he.bl_count[je]=0;for(ut[2*he.heap[he.heap_max]+1]=0,yn=he.heap_max+1;yn>=7;L>>=1)if(1&ve&&ee.dyn_ltree[2*se]!==0)return i;if(ee.dyn_ltree[18]!==0||ee.dyn_ltree[20]!==0||ee.dyn_ltree[26]!==0)return a;for(se=32;se>>3,(Q=C.static_len+3+7>>>3)<=L&&(L=Q)):L=Q=V+5,V+4<=L&&F!==-1?S(C,F,V,Z):C.strategy===4||Q===L?(J(C,2+(Z?1:0),3),pe(C,$,P)):(J(C,4+(Z?1:0),3),function(ee,se,ve,he){var Ge;for(J(ee,se-257,5),J(ee,ve-1,5),J(ee,he-4,4),Ge=0;Ge>>8&255,C.pending_buf[C.d_buf+2*C.last_lit+1]=255&F,C.pending_buf[C.l_buf+C.last_lit]=255&V,C.last_lit++,F===0?C.dyn_ltree[2*V]++:(C.matches++,F--,C.dyn_ltree[2*(v[V]+d+1)]++,C.dyn_dtree[2*M(F)]++),C.last_lit===C.lit_bufsize-1},o._tr_align=function(C){J(C,2,3),G(C,_,$),function(F){F.bi_valid===16?(te(F,F.bi_buf),F.bi_buf=0,F.bi_valid=0):8<=F.bi_valid&&(F.pending_buf[F.pending++]=255&F.bi_buf,F.bi_buf>>=8,F.bi_valid-=8)}(C)}},{"../utils/common":41}],53:[function(n,r,o){r.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(n,r,o){(function(s){(function(i,a){if(!i.setImmediate){var l,u,c,d,p=1,h={},b=!1,f=i.document,y=Object.getPrototypeOf&&Object.getPrototypeOf(i);y=y&&y.setTimeout?y:i,l={}.toString.call(i.process)==="[object process]"?function(k){process.nextTick(function(){w(k)})}:function(){if(i.postMessage&&!i.importScripts){var k=!0,x=i.onmessage;return i.onmessage=function(){k=!1},i.postMessage("","*"),i.onmessage=x,k}}()?(d="setImmediate$"+Math.random()+"$",i.addEventListener?i.addEventListener("message",_,!1):i.attachEvent("onmessage",_),function(k){i.postMessage(d+k,"*")}):i.MessageChannel?((c=new MessageChannel).port1.onmessage=function(k){w(k.data)},function(k){c.port2.postMessage(k)}):f&&"onreadystatechange"in f.createElement("script")?(u=f.documentElement,function(k){var x=f.createElement("script");x.onreadystatechange=function(){w(k),x.onreadystatechange=null,u.removeChild(x),x=null},u.appendChild(x)}):function(k){setTimeout(w,0,k)},y.setImmediate=function(k){typeof k!="function"&&(k=new Function(""+k));for(var x=new Array(arguments.length-1),I=0;I"u"?s===void 0?this:s:self)}).call(this,typeof Xn<"u"?Xn:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(ll);var Zh=ll.exports;const Gh=xa(Zh);async function Yh(t){let e="",n=t;for(;n!=null;){const r=await(qe==null?void 0:qe.get(n));if(r==null)break;e=`${r.name}/${e}`,n=r.parentFolderID??null}return e}async function Op(t){if(await(Y==null?void 0:Y.getSetting("twoWaySync")))return await Ct.genFilesCountInFolder(t)??0;const n=await(q==null?void 0:q.listAll())??[],r=await(qe==null?void 0:qe.listAll())??[],o=[t];let s=0;for(;o.length>0;){const i=o.shift();if(i){for(const l of n)l.parentFolderID===i&&s++;const a=r.filter(l=>l.parentFolderID===i).map(l=>l.id);a.length&&o.push(...a)}}return s}const Jh=async t=>{const e=`ComfyUI workspace workflows ${el(Date.now())}`,n=new Gh,r=await(Y==null?void 0:Y.getSetting("twoWaySync"));for(const o of t){let s;r?s=o.parentFolderID??"":s=await Yh(o.parentFolderID??null).then(async a=>Pt(a??""));const i=n.folder(s);i==null||i.file(`${o.name}.json`,o.json)}n.generateAsync({type:"blob"}).then(function(o){const s=document.createElement("a");s.href=window.URL.createObjectURL(o),s.download=`${e}.zip`,document.body.appendChild(s),s.click(),document.body.removeChild(s)})};function Xh({myWorkflowsDir:t}){return O.jsxs(rn,{gap:3,children:[O.jsx(ps,{size:"md",children:"🦄 Upgrade to 2.0 - enable two way sync!"}),O.jsx("p",{children:"Your workflows will be synced to and from path:"}),O.jsx("p",{children:O.jsx("b",{children:t})}),O.jsxs("p",{children:["You can manually put workflow files into this folder using File Explorer to sync them with your workspace. You can change this path anytime in Settings ",">"," Workspace Save Directory"]}),O.jsxs("p",{children:[O.jsx("b",{children:"Please download all your workflows before enabling two way sync as a backup!"})," ","So you can manually import some workflows into your workspace in case something unexpected happens."]}),O.jsx(Le,{colorScheme:"teal",variant:"outline",width:"fit-content",onClick:async()=>{const e=await(q==null?void 0:q.listAll());Jh(e??[])},children:"👉 Download All My Workflows"})]})}const Qh=Da.lazy(()=>At(()=>import("./RecentFilesDrawer-nkyCGrYH.js"),__vite__mapDeps([15,1,9,2,14,16,13,5]))),ep=Da.lazy(()=>At(()=>import("./GalleryModal--OOrrwTO.js"),__vite__mapDeps([17,1,16,13,2,10,9,4])));function tp(){const[t,e]=j.useState(null),[n,r]=j.useState("root"),[o,s]=j.useState(!0),[i,a]=j.useState(null),l=j.useRef(null),[u,c]=j.useState(!1),d=j.useRef(null),{showDialog:p}=Ia(),[h,b]=j.useState(!1);j.useRef(!1);const f=ja(),[y,m]=Vh(null),w=j.useCallback(async(v=!1)=>{var H,A;const T=q==null?void 0:q.curWorkflow;if(T){if(!v&&((H=q==null?void 0:q.curWorkflow)!=null&&H.saveLock)){f({title:"The workflow is locked and cannot be saved",status:"warning",duration:3e3});return}const X=JSON.stringify(Pe.graph.serialize());await Promise.all([q==null?void 0:q.updateFlow(T.id,{json:X}),He==null?void 0:He.create({workflowID:T.id,json:X,isAutoSave:!1})]),(A=Y==null?void 0:Y.settings)!=null&&A.autoSave&&f({title:"Saved",status:"success",duration:1e3,isClosable:!0}),c(!1)}},[]),_=async()=>{var T,H,A;if((T=Y==null?void 0:Y.settings)!=null&&T.autoSave){alert("You cannot discard unsaved changes when auto save is enabled");return}if(confirm("Are you sure you want to discard unsaved changes? This will revert current workflow to your last saved version. You will lose all changes made since your last save.")){const X=(H=q==null?void 0:q.curWorkflow)==null?void 0:H.id;if(X==null)return;const K=(A=await(q==null?void 0:q.get(X)))==null?void 0:A.json;K?(q==null||q.updateCurWorkflow({...q.curWorkflow,json:K}),await Pe.loadGraphData(JSON.parse(K)),c(!1)):alert("Error: No last saved version found")}},k=v=>{const T=(v==null?void 0:v.id)??null;if(q==null||q.updateCurWorkflow(v),l.current=T,a(T),e((v==null?void 0:v.name)??""),T==null){document.title="ComfyUI",window.location.hash="",localStorage.removeItem("curFlowID");return}if(wa()){const H=tl(T);window.location.hash=H,document.title=v.name+" - ComfyUI"}else localStorage.setItem("curFlowID",T),document.title="ComfyUI - "+v.name;v&&(q==null||q.updateLastOpenedTime(v.id))},x=async()=>{var H,A;localStorage.removeItem("workspace"),localStorage.removeItem("comfyspace");try{await rh()}catch(X){console.error("error loading db",X)}s(!1);const v=wa();if(v==null){const X=localStorage.getItem("workflow");if(X){const ne=(A=(H=JSON.parse(X).extra)==null?void 0:H[xt])==null?void 0:A.id;if(ne){const z=await(q==null?void 0:q.get(ne));z&&k(z),!(z!=null&&z.saveLock)&&z&&z.json!=X&&c(!0)}}}else I(v);if(Ie("/workspace/deduplicate_workflow_ids"),!await(Y==null?void 0:Y.getSetting("twoWaySync"))){if(await ce.workflows.count()==0){await(Y==null?void 0:Y.upsert({twoWaySync:!0})),await ce.cache.put({id:ba,value:"true"});return}const K=await(Y==null?void 0:Y.getSetting("myWorkflowsDir"));p(O.jsx(Xh,{myWorkflowsDir:K??"undefined"}),[{label:"I have downloaded all my workflows and ready to enable",onClick:async()=>{await(Y==null?void 0:Y.upsert({twoWaySync:!0})),await(Y==null?void 0:Y.getSetting("twoWaySync"))&&(ce.cache.put({id:ba,value:"true"}),location.reload())},colorScheme:"red"}],{closeOnOverlayClick:!1})}},I=async(v,T)=>{if(Pe.graph==null)return;const H=await(q==null?void 0:q.get(v));if(H==null){alert("Error: Workflow not found! id: "+v),k(null);return}const A=T?await(ge==null?void 0:ge.get(T)):null;Pe.ui.dialog.close(),A?(m(A),k({...H,json:A.json}),Pe.loadGraphData(JSON.parse(A.json))):(k(H),m(null),Pe.loadGraphData(JSON.parse(H.json))),r("root"),u&&c(!1)},E=async(v,T,H=!1)=>{var A;if(v===null){k(null),Pe.graph.clear();return}if(!u||H||(A=Y==null?void 0:Y.settings)!=null&&A.autoSave||(q==null?void 0:q.curWorkflow)==null){I(v,T);return}N(v)},N=async v=>{var H;const T=[v?{label:"Open in new tab",icon:O.jsx(mh,{}),onClick:()=>{Yf(v)}}:null,{label:"Save",colorScheme:"teal",onClick:async()=>{await w(),v&&I(v)}}];T.push({label:"Discard",colorScheme:"red",onClick:async()=>{v&&I(v)}}),p(`Please save or discard your changes to "${(H=q==null?void 0:q.curWorkflow)==null?void 0:H.name}" before leaving, or your changes will be lost.`,T)},D=async v=>{const T=(v==null?void 0:v.json)??JSON.stringify(nl),H=await(q==null?void 0:q.createFlow({json:T,name:v==null?void 0:v.name}));H&&await E(H.id),r("root")},R=async(v,T=!1)=>{const H=v.split("/").pop()??v;T?w():D({name:H});const A=await fetch(Gf(v)),X=await A.blob(),K=new File([X],H,{type:A.headers.get("Content-Type")||""});await Pe.handleFile(K),r("root")},$=async(v,T)=>{const H=await(q==null?void 0:q.get(v));if(H==null)return;const A=await(q==null?void 0:q.createFlow({json:H.json,name:T||H.name,parentFolderID:H.parentFolderID,tags:H.tags}));A&&await E(A.id)},P=j.useCallback(v=>{if(l.current==null)return;let T=v.filename;v.subfolder!=null&&v.subfolder!==""&&(T=v.subfolder+"/"+T),$t==null||$t.create({workflowID:l.current,localPath:T})},[]),B=j.useCallback(()=>{r("root")},[]);return j.useEffect(()=>{x(),b(!0);const v=T=>{var H,A,X,K,ne,z;(X=(A=(H=T.detail)==null?void 0:H.output)==null?void 0:A.images)==null||X.forEach(M=>{M.type==="output"&&P(M)}),(z=(ne=(K=T.detail)==null?void 0:K.output)==null?void 0:ne.gifs)==null||z.forEach(M=>{M.type==="output"&&P(M)})};return Er.addEventListener("executed",v),()=>{window.removeEventListener("executed",v)}},[]),o?null:O.jsx(wt.Provider,{value:{curFlowID:i,onDuplicateWorkflow:$,loadWorkflowID:E,discardUnsavedChanges:_,saveCurWorkflow:w,isDirty:u,setIsDirty:c,loadNewWorkflow:D,loadFilePath:R,setRoute:r,route:n,curVersion:y,setCurVersion:m,setCurFlowIDAndName:k},children:O.jsx("div",{ref:d,className:"workspace_manager",children:O.jsxs(Sa,{containerRef:d,children:[O.jsxs(St,{style:{position:"absolute",top:0,right:0,left:0},zIndex:Jf,draggable:!1,children:[O.jsx(Kh,{curFlowName:t,setCurFlowName:e}),h&&n==="recentFlows"&&O.jsx(j.Suspense,{children:O.jsx(Qh,{onClose:B,onClickNewFlow:()=>{D(),r("root")}})}),n==="gallery"&&O.jsx(j.Suspense,{children:O.jsx(ep,{onclose:()=>r("root")})})]}),O.jsx($h,{})]})})})}const Ip=Object.freeze(Object.defineProperty({__proto__:null,default:tp},Symbol.toStringTag,{value:"Module"}));export{Ie as $,hh as A,St as B,pp as C,Oh as D,$f as E,xn as F,yh as G,zt as H,jn as I,qe as J,qr as K,Vr as L,li as M,Hr as N,_h as O,nl as P,Op as Q,kp as R,dd as S,Xr as T,gr as U,nh as V,hp as W,wt as X,mh as Y,Yf as Z,al as _,ap as a,$t as a0,el as a1,at as a2,Pe as a3,Hl as a4,Jf as a5,lp as a6,wr as a7,mp as a8,Fa as a9,wp as aA,Ls as aB,hs as aC,Ep as aD,xp as aE,Cp as aF,Fn as aG,Nh as aH,Sp as aI,Ip as aJ,ec as aa,vp as ab,ps as ac,nn as ad,tc as ae,xt as af,gp as ag,yp as ah,He as ai,Nl as aj,Hn as ak,Os as al,ce as am,cp as an,bp as ao,_p as ap,up as aq,Er as ar,dp as as,bc as at,ui as au,ci as av,pi as aw,fi as ax,Vh as ay,eh as az,op as b,sp as c,Re as d,xh as e,ja as f,rn as g,Mt as h,Ht as i,Un as j,Y as k,Xh as l,_c as m,Vd as n,ip as o,fp as p,bo as q,Cs as r,Ss as s,_r as t,Gr as u,bt as v,ph as w,q as x,Sh as y,Jh as z}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["workspace_web/ShareDialog-gnVPTurL.js","workspace_web/input.js","workspace_web/chunk-7D6N5TE5-ZfhYDM9i.js","workspace_web/civitUtils-8IbIESmj.js","workspace_web/chunk-VTV6N5LE-K9rVd8eY.js","workspace_web/IconCopy-Ge1LD4_a.js","workspace_web/AppIsDirtyEventListener-4QIATPDH.js","workspace_web/useDebounceFn-ld478fd0.js","workspace_web/ModelManagerTopbar-SNvLsit2.js","workspace_web/chunk-JARCRF6W-sDjzfEGl.js","workspace_web/chunk-3RSXBRAN-1feEpIXZ.js","workspace_web/assets/ModelManagerTopbar--iv3sdjQ.css","workspace_web/SpotlightSearch-pfa51tE-.js","workspace_web/IconSearch-xcUfhAk-.js","workspace_web/chunk-NTCQBYKE-6cj7iDLd.js","workspace_web/RecentFilesDrawer-nkyCGrYH.js","workspace_web/MediaPreview-AxH1rOBH.js","workspace_web/GalleryModal--OOrrwTO.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} \ No newline at end of file diff --git a/dist/workspace_web/App-eQybp91e.js b/dist/workspace_web/App-eQybp91e.js deleted file mode 100644 index da28dfb..0000000 --- a/dist/workspace_web/App-eQybp91e.js +++ /dev/null @@ -1,29 +0,0 @@ -var kl=Object.defineProperty;var El=(t,e,n)=>e in t?kl(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Oe=(t,e,n)=>(El(t,typeof e!="symbol"?e+"":e,n),n);import{u as Cl,a as Sl,r as P,c as Il,b as rt,m as Me,d as Wt,f as fe,j as k,e as Oa,g as de,h as xe,B as Ol,i as Te,k as Dl,o as Je,l as Rt,n as lt,I as Vr,p as Hn,q as io,s as De,t as Da,v as jl,w as Pl,x as Al,y as qr,z as Nl,A as Fl,C as Rl,D as Tl,E as fs,F as ja,G as hs,H as Pa,J as Ml,K as Bl,L as zl,P as Aa,_ as Tt,M as Gr,N as ps,O as Zr,Q as ms,R as ys,S as Yr,T as vs,U as Zs,V as Na,W as Fa,X as tr,Y as Ra}from"./input.js";function Ll(t){return t!=null&&typeof t=="object"&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE}function Ta(t){var e;return Ll(t)&&(e=t.ownerDocument)!=null?e:document}function Wl(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var Ul=Wl();function Kl(t){const e=Object.assign({},t);for(let n in e)e[n]===void 0&&delete e[n];return e}function Ma(t){const{theme:e}=Cl(),n=Sl();return P.useMemo(()=>Il(e.direction,{...n,...t}),[t,e.direction,n])}var $l=Object.defineProperty,Hl=(t,e,n)=>e in t?$l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,je=(t,e,n)=>(Hl(t,typeof e!="symbol"?e+"":e,n),n);function Ys(t){return t.sort((e,n)=>{const r=e.compareDocumentPosition(n);if(r&Node.DOCUMENT_POSITION_FOLLOWING||r&Node.DOCUMENT_POSITION_CONTAINED_BY)return-1;if(r&Node.DOCUMENT_POSITION_PRECEDING||r&Node.DOCUMENT_POSITION_CONTAINS)return 1;if(r&Node.DOCUMENT_POSITION_DISCONNECTED||r&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)throw Error("Cannot sort the given nodes.");return 0})}var Vl=t=>typeof t=="object"&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE;function Js(t,e,n){let r=t+1;return n&&r>=e&&(r=0),r}function Xs(t,e,n){let r=t-1;return n&&r<0&&(r=e),r}var Co=typeof window<"u"?P.useLayoutEffect:P.useEffect,Sr=t=>t,ql=class{constructor(){je(this,"descendants",new Map),je(this,"register",t=>{if(t!=null)return Vl(t)?this.registerNode(t):e=>{this.registerNode(e,t)}}),je(this,"unregister",t=>{this.descendants.delete(t);const e=Ys(Array.from(this.descendants.keys()));this.assignIndex(e)}),je(this,"destroy",()=>{this.descendants.clear()}),je(this,"assignIndex",t=>{this.descendants.forEach(e=>{const n=t.indexOf(e.node);e.index=n,e.node.dataset.index=e.index.toString()})}),je(this,"count",()=>this.descendants.size),je(this,"enabledCount",()=>this.enabledValues().length),je(this,"values",()=>Array.from(this.descendants.values()).sort((e,n)=>e.index-n.index)),je(this,"enabledValues",()=>this.values().filter(t=>!t.disabled)),je(this,"item",t=>{if(this.count()!==0)return this.values()[t]}),je(this,"enabledItem",t=>{if(this.enabledCount()!==0)return this.enabledValues()[t]}),je(this,"first",()=>this.item(0)),je(this,"firstEnabled",()=>this.enabledItem(0)),je(this,"last",()=>this.item(this.descendants.size-1)),je(this,"lastEnabled",()=>{const t=this.enabledValues().length-1;return this.enabledItem(t)}),je(this,"indexOf",t=>{var e,n;return t&&(n=(e=this.descendants.get(t))==null?void 0:e.index)!=null?n:-1}),je(this,"enabledIndexOf",t=>t==null?-1:this.enabledValues().findIndex(e=>e.node.isSameNode(t))),je(this,"next",(t,e=!0)=>{const n=Js(t,this.count(),e);return this.item(n)}),je(this,"nextEnabled",(t,e=!0)=>{const n=this.item(t);if(!n)return;const r=this.enabledIndexOf(n.node),o=Js(r,this.enabledCount(),e);return this.enabledItem(o)}),je(this,"prev",(t,e=!0)=>{const n=Xs(t,this.count()-1,e);return this.item(n)}),je(this,"prevEnabled",(t,e=!0)=>{const n=this.item(t);if(!n)return;const r=this.enabledIndexOf(n.node),o=Xs(r,this.enabledCount()-1,e);return this.enabledItem(o)}),je(this,"registerNode",(t,e)=>{if(!t||this.descendants.has(t))return;const n=Array.from(this.descendants.keys()).concat(t),r=Ys(n);e!=null&&e.disabled&&(e.disabled=!!e.disabled);const o={node:t,index:-1,...e};this.descendants.set(t,o),this.assignIndex(r)})}};function Gl(){const t=P.useRef(new ql);return Co(()=>()=>t.current.destroy()),t.current}var[Zl,Ba]=rt({name:"DescendantsProvider",errorMessage:"useDescendantsContext must be used within DescendantsProvider"});function Yl(t){const e=Ba(),[n,r]=P.useState(-1),o=P.useRef(null);Co(()=>()=>{o.current&&e.unregister(o.current)},[]),Co(()=>{if(!o.current)return;const i=Number(o.current.dataset.index);n!=i&&!Number.isNaN(i)&&r(i)});const s=Sr(t?e.register(t):e.register);return{descendants:e,index:n,enabledIndex:e.enabledIndexOf(o.current),register:Me(s,o)}}function za(){return[Sr(Zl),()=>Sr(Ba()),()=>Gl(),o=>Yl(o)]}function La(t){const{value:e,defaultValue:n,onChange:r,shouldUpdate:o=(p,h)=>p!==h}=t,s=Wt(r),i=Wt(o),[a,l]=P.useState(n),u=e!==void 0,c=u?e:a,d=Wt(p=>{const v=typeof p=="function"?p(c):p;i(c,v)&&(u||l(v),s(v))},[u,s,c,i]);return[c,d]}var So=fe(function(e,n){const{htmlWidth:r,htmlHeight:o,alt:s,...i}=e;return k.jsx("img",{width:r,height:o,ref:n,alt:s,...i})});So.displayName="NativeImage";function Jl(t){const{loading:e,src:n,srcSet:r,onLoad:o,onError:s,crossOrigin:i,sizes:a,ignoreFallback:l}=t,[u,c]=P.useState("pending");P.useEffect(()=>{c(n?"loading":"pending")},[n]);const d=P.useRef(),p=P.useCallback(()=>{if(!n)return;h();const v=new Image;v.src=n,i&&(v.crossOrigin=i),r&&(v.srcset=r),a&&(v.sizes=a),e&&(v.loading=e),v.onload=f=>{h(),c("loaded"),o==null||o(f)},v.onerror=f=>{h(),c("failed"),s==null||s(f)},d.current=v},[n,i,r,a,o,s,e]),h=()=>{d.current&&(d.current.onload=null,d.current.onerror=null,d.current=null)};return Oa(()=>{if(!l)return u==="loading"&&p(),()=>{h()}},[u,p,l]),l?"loaded":u}var Xl=(t,e)=>t!=="loaded"&&e==="beforeLoadOrError"||t==="failed"&&e==="onError";function Ql(t,e=[]){const n=Object.assign({},t);for(const r of e)r in n&&delete n[r];return n}var Wa=fe(function(e,n){const{fallbackSrc:r,fallback:o,src:s,srcSet:i,align:a,fit:l,loading:u,ignoreFallback:c,crossOrigin:d,fallbackStrategy:p="beforeLoadOrError",referrerPolicy:h,...v}=e,f=r!==void 0||o!==void 0,m=u!=null||c||!f,y=Jl({...e,crossOrigin:d,ignoreFallback:m}),g=Xl(y,p),_={ref:n,objectFit:l,objectPosition:a,...m?v:Ql(v,["onError","onLoad"])};return g?o||k.jsx(de.img,{as:So,className:"chakra-image__placeholder",src:r,..._}):k.jsx(de.img,{as:So,src:s,srcSet:i,crossOrigin:d,loading:u,referrerPolicy:h,className:"chakra-image",..._})});Wa.displayName="Image";function gs(t){return P.Children.toArray(t).filter(e=>P.isValidElement(e))}var ec={horizontal:{"> *:first-of-type:not(:last-of-type)":{borderEndRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderStartRadius:0}},vertical:{"> *:first-of-type:not(:last-of-type)":{borderBottomRadius:0},"> *:not(:first-of-type):not(:last-of-type)":{borderRadius:0},"> *:not(:first-of-type):last-of-type":{borderTopRadius:0}}},tc={horizontal:t=>({"& > *:not(style) ~ *:not(style)":{marginStart:t}}),vertical:t=>({"& > *:not(style) ~ *:not(style)":{marginTop:t}})},Ua=fe(function(e,n){const{size:r,colorScheme:o,variant:s,className:i,spacing:a="0.5rem",isAttached:l,isDisabled:u,orientation:c="horizontal",...d}=e,p=xe("chakra-button__group",i),h=P.useMemo(()=>({size:r,colorScheme:o,variant:s,isDisabled:u}),[r,o,s,u]);let v={display:"inline-flex",...l?ec[c]:tc[c](a)};const f=c==="vertical";return k.jsx(Ol,{value:h,children:k.jsx(de.div,{ref:n,role:"group",__css:v,className:p,"data-attached":l?"":void 0,"data-orientation":c,flexDir:f?"column":void 0,...d})})});Ua.displayName="ButtonGroup";var cn=fe((t,e)=>{const{icon:n,children:r,isRound:o,"aria-label":s,...i}=t,a=n||r,l=P.isValidElement(a)?P.cloneElement(a,{"aria-hidden":!0,focusable:!1}):null;return k.jsx(Te,{padding:"0",borderRadius:o?"full":void 0,ref:e,"aria-label":s,...i,children:l})});cn.displayName="IconButton";var[nc,Ka]=Dl("Card"),rc=fe(function(e,n){const{className:r,...o}=e,s=Ka();return k.jsx(de.div,{ref:n,className:xe("chakra-card__body",r),__css:s.body,...o})}),oc=fe(function(e,n){const{className:r,...o}=e,s=Ka();return k.jsx(de.div,{ref:n,className:xe("chakra-card__header",r),__css:s.header,...o})}),sc=fe(function(e,n){const{className:r,children:o,direction:s="column",justify:i,align:a,...l}=Je(e),u=Rt("Card",e);return k.jsx(de.div,{ref:n,className:xe("chakra-card",r),__css:{display:"flex",flexDirection:s,justifyContent:i,alignItems:a,position:"relative",minWidth:0,wordWrap:"break-word",...u.container},...l,children:k.jsx(nc,{value:u,children:o})})}),[ac,$a]=rt({name:"FormControlStylesContext",errorMessage:`useFormControlStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[ic,vn]=rt({strict:!1,name:"FormControlContext"});function lc(t){const{id:e,isRequired:n,isInvalid:r,isDisabled:o,isReadOnly:s,...i}=t,a=P.useId(),l=e||`field-${a}`,u=`${l}-label`,c=`${l}-feedback`,d=`${l}-helptext`,[p,h]=P.useState(!1),[v,f]=P.useState(!1),[m,y]=P.useState(!1),g=P.useCallback((C={},N=null)=>({id:d,...C,ref:Me(N,j=>{j&&f(!0)})}),[d]),_=P.useCallback((C={},N=null)=>({...C,ref:N,"data-focus":lt(m),"data-disabled":lt(o),"data-invalid":lt(r),"data-readonly":lt(s),id:C.id!==void 0?C.id:u,htmlFor:C.htmlFor!==void 0?C.htmlFor:l}),[l,o,m,r,s,u]),x=P.useCallback((C={},N=null)=>({id:c,...C,ref:Me(N,j=>{j&&h(!0)}),"aria-live":"polite"}),[c]),E=P.useCallback((C={},N=null)=>({...C,...i,ref:N,role:"group","data-focus":lt(m),"data-disabled":lt(o),"data-invalid":lt(r),"data-readonly":lt(s)}),[i,o,m,r,s]),I=P.useCallback((C={},N=null)=>({...C,ref:N,role:"presentation","aria-hidden":!0,children:C.children||"*"}),[]);return{isRequired:!!n,isInvalid:!!r,isReadOnly:!!s,isDisabled:!!o,isFocused:!!m,onFocus:()=>y(!0),onBlur:()=>y(!1),hasFeedbackText:p,setHasFeedbackText:h,hasHelpText:v,setHasHelpText:f,id:l,labelId:u,feedbackId:c,helpTextId:d,htmlProps:i,getHelpTextProps:g,getErrorMessageProps:x,getRootProps:E,getLabelProps:_,getRequiredIndicatorProps:I}}var Jr=fe(function(e,n){const r=Rt("Form",e),o=Je(e),{getRootProps:s,htmlProps:i,...a}=lc(o),l=xe("chakra-form-control",e.className);return k.jsx(ic,{value:a,children:k.jsx(ac,{value:r,children:k.jsx(de.div,{...s({},n),className:l,__css:r.container})})})});Jr.displayName="FormControl";var cc=fe(function(e,n){const r=vn(),o=$a(),s=xe("chakra-form__helper-text",e.className);return k.jsx(de.div,{...r==null?void 0:r.getHelpTextProps(e,n),__css:o.helperText,className:s})});cc.displayName="FormHelperText";var[uc,dc]=rt({name:"FormErrorStylesContext",errorMessage:`useFormErrorStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Xr=fe((t,e)=>{const n=Rt("FormError",t),r=Je(t),o=vn();return o!=null&&o.isInvalid?k.jsx(uc,{value:n,children:k.jsx(de.div,{...o==null?void 0:o.getErrorMessageProps(r,e),className:xe("chakra-form__error-message",t.className),__css:{display:"flex",alignItems:"center",...n.text}})}):null});Xr.displayName="FormErrorMessage";var fc=fe((t,e)=>{const n=dc(),r=vn();if(!(r!=null&&r.isInvalid))return null;const o=xe("chakra-form__error-icon",t.className);return k.jsx(Vr,{ref:e,"aria-hidden":!0,...t,__css:n.icon,className:o,children:k.jsx("path",{fill:"currentColor",d:"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z"})})});fc.displayName="FormErrorIcon";var Qr=fe(function(e,n){var r;const o=Hn("FormLabel",e),s=Je(e),{className:i,children:a,requiredIndicator:l=k.jsx(Ha,{}),optionalIndicator:u=null,...c}=s,d=vn(),p=(r=d==null?void 0:d.getLabelProps(c,n))!=null?r:{ref:n,...c};return k.jsxs(de.label,{...p,className:xe("chakra-form__label",s.className),__css:{display:"block",textAlign:"start",...o},children:[a,d!=null&&d.isRequired?l:u]})});Qr.displayName="FormLabel";var Ha=fe(function(e,n){const r=vn(),o=$a();if(!(r!=null&&r.isRequired))return null;const s=xe("chakra-form__required-indicator",e.className);return k.jsx(de.span,{...r==null?void 0:r.getRequiredIndicatorProps(e,n),__css:o.requiredIndicator,className:s})});Ha.displayName="RequiredIndicator";function hc(t){const{isDisabled:e,isInvalid:n,isReadOnly:r,isRequired:o,...s}=pc(t);return{...s,disabled:e,readOnly:r,required:o,"aria-invalid":io(n),"aria-required":io(o),"aria-readonly":io(r)}}function pc(t){var e,n,r;const o=vn(),{id:s,disabled:i,readOnly:a,required:l,isRequired:u,isInvalid:c,isReadOnly:d,isDisabled:p,onFocus:h,onBlur:v,...f}=t,m=t["aria-describedby"]?[t["aria-describedby"]]:[];return o!=null&&o.hasFeedbackText&&(o!=null&&o.isInvalid)&&m.push(o.feedbackId),o!=null&&o.hasHelpText&&m.push(o.helpTextId),{...f,"aria-describedby":m.join(" ")||void 0,id:s??(o==null?void 0:o.id),isDisabled:(e=i??p)!=null?e:o==null?void 0:o.isDisabled,isReadOnly:(n=a??d)!=null?n:o==null?void 0:o.isReadOnly,isRequired:(r=l??u)!=null?r:o==null?void 0:o.isRequired,isInvalid:c??(o==null?void 0:o.isInvalid),onFocus:De(o==null?void 0:o.onFocus,h),onBlur:De(o==null?void 0:o.onBlur,v)}}function on(t,e,n,r){const o=Wt(n);return P.useEffect(()=>{const s=typeof t=="function"?t():t??document;if(!(!n||!s))return s.addEventListener(e,o,r),()=>{s.removeEventListener(e,o,r)}},[e,t,r,o,n]),()=>{const s=typeof t=="function"?t():t??document;s==null||s.removeEventListener(e,o,r)}}function mc(t){return"current"in t}var Va=()=>typeof window<"u";function yc(){var t;const e=navigator.userAgentData;return(t=e==null?void 0:e.platform)!=null?t:navigator.platform}var vc=t=>Va()&&t.test(navigator.vendor),gc=t=>Va()&&t.test(yc()),wc=()=>gc(/mac|iphone|ipad|ipod/i),bc=()=>wc()&&vc(/apple/i);function _c(t){const{ref:e,elements:n,enabled:r}=t,o=()=>{var s,i;return(i=(s=e.current)==null?void 0:s.ownerDocument)!=null?i:document};on(o,"pointerdown",s=>{if(!bc()||!r)return;const i=s.target,l=(n??[e]).some(u=>{const c=mc(u)?u.current:u;return(c==null?void 0:c.contains(i))||c===i});o().activeElement!==i&&l&&(s.preventDefault(),i.focus())})}var qa={exports:{}},xc="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",kc=xc,Ec=kc;function Ga(){}function Za(){}Za.resetWarningCache=Ga;var Cc=function(){function t(r,o,s,i,a,l){if(l!==Ec){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}t.isRequired=t;function e(){return t}var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:Za,resetWarningCache:Ga};return n.PropTypes=n,n};qa.exports=Cc();var Sc=qa.exports;const Bt=Da(Sc);function Ic(t){const e=t.ownerDocument.defaultView||window,{overflow:n,overflowX:r,overflowY:o}=e.getComputedStyle(t);return/auto|scroll|overlay|hidden/.test(n+o+r)}function Oc(t){return t.localName==="html"?t:t.assignedSlot||t.parentElement||t.ownerDocument.documentElement}function Ya(t){return["html","body","#document"].includes(t.localName)?t.ownerDocument.body:jl(t)&&Ic(t)?t:Ya(Oc(t))}var Dc=Ul?P.useLayoutEffect:P.useEffect;function Io(t,e=[]){const n=P.useRef(t);return Dc(()=>{n.current=t}),P.useCallback((...r)=>{var o;return(o=n.current)==null?void 0:o.call(n,...r)},e)}function jc(t){const{ref:e,handler:n,enabled:r=!0}=t,o=Io(n),i=P.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;P.useEffect(()=>{if(!r)return;const a=d=>{lo(d,e)&&(i.isPointerDown=!0)},l=d=>{if(i.ignoreEmulatedMouseEvents){i.ignoreEmulatedMouseEvents=!1;return}i.isPointerDown&&n&&lo(d,e)&&(i.isPointerDown=!1,o(d))},u=d=>{i.ignoreEmulatedMouseEvents=!0,n&&i.isPointerDown&&lo(d,e)&&(i.isPointerDown=!1,o(d))},c=Ta(e.current);return c.addEventListener("mousedown",a,!0),c.addEventListener("mouseup",l,!0),c.addEventListener("touchstart",a,!0),c.addEventListener("touchend",u,!0),()=>{c.removeEventListener("mousedown",a,!0),c.removeEventListener("mouseup",l,!0),c.removeEventListener("touchstart",a,!0),c.removeEventListener("touchend",u,!0)}},[n,e,o,i,r])}function lo(t,e){var n;const r=t.target;return r&&!Ta(r).contains(r)?!1:!((n=e.current)!=null&&n.contains(r))}function Pc(t,e){const n=P.useId();return P.useMemo(()=>t||[e,n].filter(Boolean).join("-"),[t,e,n])}function Ac(t,e){const n=t!==void 0;return[n,n&&typeof t<"u"?t:e]}function Nc(t={}){const{onClose:e,onOpen:n,isOpen:r,id:o}=t,s=Io(n),i=Io(e),[a,l]=P.useState(t.defaultIsOpen||!1),[u,c]=Ac(r,a),d=Pc(o,"disclosure"),p=P.useCallback(()=>{u||l(!1),i==null||i()},[u,i]),h=P.useCallback(()=>{u||l(!0),s==null||s()},[u,s]),v=P.useCallback(()=>{(c?p:h)()},[c,h,p]);return{isOpen:!!c,onOpen:h,onClose:p,onToggle:v,isControlled:u,getButtonProps:(f={})=>({...f,"aria-expanded":c,"aria-controls":d,onClick:Pl(f.onClick,v)}),getDisclosureProps:(f={})=>({...f,hidden:!c,id:d})}}var gn=fe(function(e,n){const{htmlSize:r,...o}=e,s=Rt("Input",o),i=Je(o),a=hc(i),l=xe("chakra-input",e.className);return k.jsx(de.input,{size:r,...a,__css:s.field,ref:n,className:l})});gn.displayName="Input";gn.id="Input";function Fc(t,e){return Array.isArray(t)?t.map(n=>n===null?null:e(n)):Al(t)?Object.keys(t).reduce((n,r)=>(n[r]=e(t[r]),n),{}):t!=null?e(t):null}var wt=fe(function(e,n){const r=Hn("Text",e),{className:o,align:s,decoration:i,casing:a,...l}=Je(e),u=Kl({textAlign:e.align,textDecoration:e.decoration,textTransform:e.casing});return k.jsx(de.p,{ref:n,className:xe("chakra-text",e.className),...u,...l,__css:r})});wt.displayName="Text";var Oo=t=>k.jsx(de.div,{className:"chakra-stack__divider",...t,__css:{...t.__css,borderWidth:0,alignSelf:"stretch",borderColor:"inherit",width:"auto",height:"auto"}});Oo.displayName="StackDivider";var Ja=t=>k.jsx(de.div,{className:"chakra-stack__item",...t,__css:{display:"inline-block",flex:"0 0 auto",minWidth:0,...t.__css}});Ja.displayName="StackItem";function Rc(t){const{spacing:e,direction:n}=t,r={column:{my:e,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},"column-reverse":{my:e,mx:0,borderLeftWidth:0,borderBottomWidth:"1px"},row:{mx:e,my:0,borderLeftWidth:"1px",borderBottomWidth:0},"row-reverse":{mx:e,my:0,borderLeftWidth:"1px",borderBottomWidth:0}};return{"&":Fc(n,o=>r[o])}}var $e=fe((t,e)=>{const{isInline:n,direction:r,align:o,justify:s,spacing:i="0.5rem",wrap:a,children:l,divider:u,className:c,shouldWrapChildren:d,...p}=t,h=n?"row":r??"column",v=P.useMemo(()=>Rc({spacing:i,direction:h}),[i,h]),f=!!u,m=!d&&!f,y=P.useMemo(()=>{const _=gs(l);return m?_:_.map((x,E)=>{const I=typeof x.key<"u"?x.key:E,C=E+1===_.length,j=d?k.jsx(Ja,{children:x},I):x;if(!f)return j;const R=P.cloneElement(u,{__css:v}),W=C?null:R;return k.jsxs(P.Fragment,{children:[j,W]},I)})},[u,v,f,m,d,l]),g=xe("chakra-stack",c);return k.jsx(de.div,{ref:e,display:"flex",alignItems:o,justifyContent:s,flexDirection:h,flexWrap:a,gap:f?void 0:i,className:g,...p,children:y})});$e.displayName="Stack";var ot=fe((t,e)=>k.jsx($e,{align:"center",...t,direction:"row",ref:e}));ot.displayName="HStack";var un=fe(function(e,n){const r=Hn("Heading",e),{className:o,...s}=Je(e);return k.jsx(de.h2,{ref:n,className:xe("chakra-heading",e.className),...s,__css:r})});un.displayName="Heading";var jt=de("div");jt.displayName="Box";var Xa=fe(function(e,n){const{size:r,centerContent:o=!0,...s}=e,i=o?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return k.jsx(jt,{ref:n,boxSize:r,__css:{...i,flexShrink:0,flexGrow:0},...s})});Xa.displayName="Square";var Tc=fe(function(e,n){const{size:r,...o}=e;return k.jsx(Xa,{size:r,ref:n,borderRadius:"9999px",...o})});Tc.displayName="Circle";var Qa=fe(function(e,n){const r=Hn("Badge",e),{className:o,...s}=Je(e);return k.jsx(de.span,{ref:n,className:xe("chakra-badge",e.className),...s,__css:{display:"inline-block",whiteSpace:"nowrap",verticalAlign:"middle",...r}})});Qa.displayName="Badge";var Ut=fe(function(e,n){const{direction:r,align:o,justify:s,wrap:i,basis:a,grow:l,shrink:u,...c}=e,d={display:"flex",flexDirection:r,alignItems:o,justifyContent:s,flexWrap:i,flexBasis:a,flexGrow:l,flexShrink:u};return k.jsx(de.div,{ref:n,__css:d,...c})});Ut.displayName="Flex";function Mc(t){const{key:e}=t;return e.length===1||e.length>1&&/[^a-zA-Z0-9]/.test(e)}function Bc(t={}){const{timeout:e=300,preventDefault:n=()=>!0}=t,[r,o]=P.useState([]),s=P.useRef(),i=()=>{s.current&&(clearTimeout(s.current),s.current=null)},a=()=>{i(),s.current=setTimeout(()=>{o([]),s.current=null},e)};P.useEffect(()=>i,[]);function l(u){return c=>{if(c.key==="Backspace"){const d=[...r];d.pop(),o(d);return}if(Mc(c)){const d=r.concat(c.key);n(c)&&(c.preventDefault(),c.stopPropagation()),o(d),u(d.join("")),a()}}}return l}function zc(t,e,n,r){if(e==null)return r;if(!r)return t.find(i=>n(i).toLowerCase().startsWith(e.toLowerCase()));const o=t.filter(s=>n(s).toLowerCase().startsWith(e.toLowerCase()));if(o.length>0){let s;return o.includes(r)?(s=o.indexOf(r)+1,s===o.length&&(s=0),o[s]):(s=t.indexOf(o[0]),t[s])}return r}function Lc(){const t=P.useRef(new Map),e=t.current,n=P.useCallback((o,s,i,a)=>{t.current.set(i,{type:s,el:o,options:a}),o.addEventListener(s,i,a)},[]),r=P.useCallback((o,s,i,a)=>{o.removeEventListener(s,i,a),t.current.delete(i)},[]);return P.useEffect(()=>()=>{e.forEach((o,s)=>{r(o.el,o.type,s,o.options)})},[r,e]),{add:n,remove:r}}function co(t){const e=t.target,{tagName:n,isContentEditable:r}=e;return n!=="INPUT"&&n!=="TEXTAREA"&&r!==!0}function ei(t={}){const{ref:e,isDisabled:n,isFocusable:r,clickOnEnter:o=!0,clickOnSpace:s=!0,onMouseDown:i,onMouseUp:a,onClick:l,onKeyDown:u,onKeyUp:c,tabIndex:d,onMouseOver:p,onMouseLeave:h,...v}=t,[f,m]=P.useState(!0),[y,g]=P.useState(!1),_=Lc(),x=A=>{A&&A.tagName!=="BUTTON"&&m(!1)},E=f?d:d||0,I=n&&!r,C=P.useCallback(A=>{if(n){A.stopPropagation(),A.preventDefault();return}A.currentTarget.focus(),l==null||l(A)},[n,l]),N=P.useCallback(A=>{y&&co(A)&&(A.preventDefault(),A.stopPropagation(),g(!1),_.remove(document,"keyup",N,!1))},[y,_]),j=P.useCallback(A=>{if(u==null||u(A),n||A.defaultPrevented||A.metaKey||!co(A.nativeEvent)||f)return;const X=o&&A.key==="Enter";s&&A.key===" "&&(A.preventDefault(),g(!0)),X&&(A.preventDefault(),A.currentTarget.click()),_.add(document,"keyup",N,!1)},[n,f,u,o,s,_,N]),R=P.useCallback(A=>{if(c==null||c(A),n||A.defaultPrevented||A.metaKey||!co(A.nativeEvent)||f)return;s&&A.key===" "&&(A.preventDefault(),g(!1),A.currentTarget.click())},[s,f,n,c]),W=P.useCallback(A=>{A.button===0&&(g(!1),_.remove(document,"mouseup",W,!1))},[_]),D=P.useCallback(A=>{if(A.button!==0)return;if(n){A.stopPropagation(),A.preventDefault();return}f||g(!0),A.currentTarget.focus({preventScroll:!0}),_.add(document,"mouseup",W,!1),i==null||i(A)},[n,f,i,_,W]),M=P.useCallback(A=>{A.button===0&&(f||g(!1),a==null||a(A))},[a,f]),w=P.useCallback(A=>{if(n){A.preventDefault();return}p==null||p(A)},[n,p]),T=P.useCallback(A=>{y&&(A.preventDefault(),g(!1)),h==null||h(A)},[y,h]),V=Me(e,x);return f?{...v,ref:V,type:"button","aria-disabled":I?void 0:n,disabled:I,onClick:C,onMouseDown:i,onMouseUp:a,onKeyUp:c,onKeyDown:u,onMouseOver:p,onMouseLeave:h}:{...v,ref:V,role:"button","data-active":lt(y),"aria-disabled":n?"true":void 0,tabIndex:I?void 0:E,onClick:C,onMouseDown:D,onMouseUp:M,onKeyUp:R,onKeyDown:j,onMouseOver:w,onMouseLeave:T}}function Wc(t){const e=t.current;if(!e)return!1;const n=Fl(e);return!n||e.contains(n)?!1:!!Rl(n)}function ti(t,e){const{shouldFocus:n,visible:r,focusRef:o}=e,s=n&&!r;qr(()=>{if(!s||Wc(t))return;const i=(o==null?void 0:o.current)||t.current;let a;if(i)return a=requestAnimationFrame(()=>{i.focus({preventScroll:!0})}),()=>{cancelAnimationFrame(a)}},[s,t,o])}var Uc={preventScroll:!0,shouldFocus:!1};function Kc(t,e=Uc){const{focusRef:n,preventScroll:r,shouldFocus:o,visible:s}=e,i=$c(t)?t.current:t,a=o&&s,l=P.useRef(a),u=P.useRef(s);Oa(()=>{!u.current&&s&&(l.current=a),u.current=s},[s,a]);const c=P.useCallback(()=>{if(!(!s||!i||!l.current)&&(l.current=!1,!i.contains(document.activeElement)))if(n!=null&&n.current)requestAnimationFrame(()=>{var d;(d=n.current)==null||d.focus({preventScroll:r})});else{const d=Nl(i);d.length>0&&requestAnimationFrame(()=>{d[0].focus({preventScroll:r})})}},[s,r,i,n]);qr(()=>{c()},[c]),on(i,"transitionend",c)}function $c(t){return"current"in t}var Qt=(t,e)=>({var:t,varRef:e?`var(${t}, ${e})`:`var(${t})`}),Ne={arrowShadowColor:Qt("--popper-arrow-shadow-color"),arrowSize:Qt("--popper-arrow-size","8px"),arrowSizeHalf:Qt("--popper-arrow-size-half"),arrowBg:Qt("--popper-arrow-bg"),transformOrigin:Qt("--popper-transform-origin"),arrowOffset:Qt("--popper-arrow-offset")};function Hc(t){if(t.includes("top"))return"1px 1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("bottom"))return"-1px -1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("right"))return"-1px 1px 0px 0 var(--popper-arrow-shadow-color)";if(t.includes("left"))return"1px -1px 0px 0 var(--popper-arrow-shadow-color)"}var Vc={top:"bottom center","top-start":"bottom left","top-end":"bottom right",bottom:"top center","bottom-start":"top left","bottom-end":"top right",left:"right center","left-start":"right top","left-end":"right bottom",right:"left center","right-start":"left top","right-end":"left bottom"},qc=t=>Vc[t],Qs={scroll:!0,resize:!0};function Gc(t){let e;return typeof t=="object"?e={enabled:!0,options:{...Qs,...t}}:e={enabled:t,options:Qs},e}var Zc={name:"matchWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:({state:t})=>{t.styles.popper.width=`${t.rects.reference.width}px`},effect:({state:t})=>()=>{const e=t.elements.reference;t.elements.popper.style.width=`${e.offsetWidth}px`}},Yc={name:"transformOrigin",enabled:!0,phase:"write",fn:({state:t})=>{ea(t)},effect:({state:t})=>()=>{ea(t)}},ea=t=>{t.elements.popper.style.setProperty(Ne.transformOrigin.var,qc(t.placement))},Jc={name:"positionArrow",enabled:!0,phase:"afterWrite",fn:({state:t})=>{Xc(t)}},Xc=t=>{var e;if(!t.placement)return;const n=Qc(t.placement);if((e=t.elements)!=null&&e.arrow&&n){Object.assign(t.elements.arrow.style,{[n.property]:n.value,width:Ne.arrowSize.varRef,height:Ne.arrowSize.varRef,zIndex:-1});const r={[Ne.arrowSizeHalf.var]:`calc(${Ne.arrowSize.varRef} / 2 - 1px)`,[Ne.arrowOffset.var]:`calc(${Ne.arrowSizeHalf.varRef} * -1)`};for(const o in r)t.elements.arrow.style.setProperty(o,r[o])}},Qc=t=>{if(t.startsWith("top"))return{property:"bottom",value:Ne.arrowOffset.varRef};if(t.startsWith("bottom"))return{property:"top",value:Ne.arrowOffset.varRef};if(t.startsWith("left"))return{property:"right",value:Ne.arrowOffset.varRef};if(t.startsWith("right"))return{property:"left",value:Ne.arrowOffset.varRef}},eu={name:"innerArrow",enabled:!0,phase:"main",requires:["arrow"],fn:({state:t})=>{ta(t)},effect:({state:t})=>()=>{ta(t)}},ta=t=>{if(!t.elements.arrow)return;const e=t.elements.arrow.querySelector("[data-popper-arrow-inner]");if(!e)return;const n=Hc(t.placement);n&&e.style.setProperty("--popper-arrow-default-shadow",n),Object.assign(e.style,{transform:"rotate(45deg)",background:Ne.arrowBg.varRef,top:0,left:0,width:"100%",height:"100%",position:"absolute",zIndex:"inherit",boxShadow:"var(--popper-arrow-shadow, var(--popper-arrow-default-shadow))"})},tu={"start-start":{ltr:"left-start",rtl:"right-start"},"start-end":{ltr:"left-end",rtl:"right-end"},"end-start":{ltr:"right-start",rtl:"left-start"},"end-end":{ltr:"right-end",rtl:"left-end"},start:{ltr:"left",rtl:"right"},end:{ltr:"right",rtl:"left"}},nu={"auto-start":"auto-end","auto-end":"auto-start","top-start":"top-end","top-end":"top-start","bottom-start":"bottom-end","bottom-end":"bottom-start"};function ru(t,e="ltr"){var n,r;const o=((n=tu[t])==null?void 0:n[e])||t;return e==="ltr"?o:(r=nu[t])!=null?r:o}var He="top",tt="bottom",nt="right",Ve="left",ws="auto",Vn=[He,tt,nt,Ve],dn="start",Rn="end",ou="clippingParents",ni="viewport",En="popper",su="reference",na=Vn.reduce(function(t,e){return t.concat([e+"-"+dn,e+"-"+Rn])},[]),ri=[].concat(Vn,[ws]).reduce(function(t,e){return t.concat([e,e+"-"+dn,e+"-"+Rn])},[]),au="beforeRead",iu="read",lu="afterRead",cu="beforeMain",uu="main",du="afterMain",fu="beforeWrite",hu="write",pu="afterWrite",mu=[au,iu,lu,cu,uu,du,fu,hu,pu];function ft(t){return t?(t.nodeName||"").toLowerCase():null}function Ze(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Gt(t){var e=Ze(t).Element;return t instanceof e||t instanceof Element}function et(t){var e=Ze(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function bs(t){if(typeof ShadowRoot>"u")return!1;var e=Ze(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function yu(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var r=e.styles[n]||{},o=e.attributes[n]||{},s=e.elements[n];!et(s)||!ft(s)||(Object.assign(s.style,r),Object.keys(o).forEach(function(i){var a=o[i];a===!1?s.removeAttribute(i):s.setAttribute(i,a===!0?"":a)}))})}function vu(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(r){var o=e.elements[r],s=e.attributes[r]||{},i=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:n[r]),a=i.reduce(function(l,u){return l[u]="",l},{});!et(o)||!ft(o)||(Object.assign(o.style,a),Object.keys(s).forEach(function(l){o.removeAttribute(l)}))})}}const gu={name:"applyStyles",enabled:!0,phase:"write",fn:yu,effect:vu,requires:["computeStyles"]};function dt(t){return t.split("-")[0]}var Kt=Math.max,Ir=Math.min,fn=Math.round;function Do(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function oi(){return!/^((?!chrome|android).)*safari/i.test(Do())}function hn(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!1);var r=t.getBoundingClientRect(),o=1,s=1;e&&et(t)&&(o=t.offsetWidth>0&&fn(r.width)/t.offsetWidth||1,s=t.offsetHeight>0&&fn(r.height)/t.offsetHeight||1);var i=Gt(t)?Ze(t):window,a=i.visualViewport,l=!oi()&&n,u=(r.left+(l&&a?a.offsetLeft:0))/o,c=(r.top+(l&&a?a.offsetTop:0))/s,d=r.width/o,p=r.height/s;return{width:d,height:p,top:c,right:u+d,bottom:c+p,left:u,x:u,y:c}}function _s(t){var e=hn(t),n=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:r}}function si(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&bs(n)){var r=e;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function xt(t){return Ze(t).getComputedStyle(t)}function wu(t){return["table","td","th"].indexOf(ft(t))>=0}function Mt(t){return((Gt(t)?t.ownerDocument:t.document)||window.document).documentElement}function eo(t){return ft(t)==="html"?t:t.assignedSlot||t.parentNode||(bs(t)?t.host:null)||Mt(t)}function ra(t){return!et(t)||xt(t).position==="fixed"?null:t.offsetParent}function bu(t){var e=/firefox/i.test(Do()),n=/Trident/i.test(Do());if(n&&et(t)){var r=xt(t);if(r.position==="fixed")return null}var o=eo(t);for(bs(o)&&(o=o.host);et(o)&&["html","body"].indexOf(ft(o))<0;){var s=xt(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function qn(t){for(var e=Ze(t),n=ra(t);n&&wu(n)&&xt(n).position==="static";)n=ra(n);return n&&(ft(n)==="html"||ft(n)==="body"&&xt(n).position==="static")?e:n||bu(t)||e}function xs(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function On(t,e,n){return Kt(t,Ir(e,n))}function _u(t,e,n){var r=On(t,e,n);return r>n?n:r}function ai(){return{top:0,right:0,bottom:0,left:0}}function ii(t){return Object.assign({},ai(),t)}function li(t,e){return e.reduce(function(n,r){return n[r]=t,n},{})}var xu=function(e,n){return e=typeof e=="function"?e(Object.assign({},n.rects,{placement:n.placement})):e,ii(typeof e!="number"?e:li(e,Vn))};function ku(t){var e,n=t.state,r=t.name,o=t.options,s=n.elements.arrow,i=n.modifiersData.popperOffsets,a=dt(n.placement),l=xs(a),u=[Ve,nt].indexOf(a)>=0,c=u?"height":"width";if(!(!s||!i)){var d=xu(o.padding,n),p=_s(s),h=l==="y"?He:Ve,v=l==="y"?tt:nt,f=n.rects.reference[c]+n.rects.reference[l]-i[l]-n.rects.popper[c],m=i[l]-n.rects.reference[l],y=qn(s),g=y?l==="y"?y.clientHeight||0:y.clientWidth||0:0,_=f/2-m/2,x=d[h],E=g-p[c]-d[v],I=g/2-p[c]/2+_,C=On(x,I,E),N=l;n.modifiersData[r]=(e={},e[N]=C,e.centerOffset=C-I,e)}}function Eu(t){var e=t.state,n=t.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=e.elements.popper.querySelector(o),!o)||si(e.elements.popper,o)&&(e.elements.arrow=o))}const Cu={name:"arrow",enabled:!0,phase:"main",fn:ku,effect:Eu,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function pn(t){return t.split("-")[1]}var Su={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Iu(t,e){var n=t.x,r=t.y,o=e.devicePixelRatio||1;return{x:fn(n*o)/o||0,y:fn(r*o)/o||0}}function oa(t){var e,n=t.popper,r=t.popperRect,o=t.placement,s=t.variation,i=t.offsets,a=t.position,l=t.gpuAcceleration,u=t.adaptive,c=t.roundOffsets,d=t.isFixed,p=i.x,h=p===void 0?0:p,v=i.y,f=v===void 0?0:v,m=typeof c=="function"?c({x:h,y:f}):{x:h,y:f};h=m.x,f=m.y;var y=i.hasOwnProperty("x"),g=i.hasOwnProperty("y"),_=Ve,x=He,E=window;if(u){var I=qn(n),C="clientHeight",N="clientWidth";if(I===Ze(n)&&(I=Mt(n),xt(I).position!=="static"&&a==="absolute"&&(C="scrollHeight",N="scrollWidth")),I=I,o===He||(o===Ve||o===nt)&&s===Rn){x=tt;var j=d&&I===E&&E.visualViewport?E.visualViewport.height:I[C];f-=j-r.height,f*=l?1:-1}if(o===Ve||(o===He||o===tt)&&s===Rn){_=nt;var R=d&&I===E&&E.visualViewport?E.visualViewport.width:I[N];h-=R-r.width,h*=l?1:-1}}var W=Object.assign({position:a},u&&Su),D=c===!0?Iu({x:h,y:f},Ze(n)):{x:h,y:f};if(h=D.x,f=D.y,l){var M;return Object.assign({},W,(M={},M[x]=g?"0":"",M[_]=y?"0":"",M.transform=(E.devicePixelRatio||1)<=1?"translate("+h+"px, "+f+"px)":"translate3d("+h+"px, "+f+"px, 0)",M))}return Object.assign({},W,(e={},e[x]=g?f+"px":"",e[_]=y?h+"px":"",e.transform="",e))}function Ou(t){var e=t.state,n=t.options,r=n.gpuAcceleration,o=r===void 0?!0:r,s=n.adaptive,i=s===void 0?!0:s,a=n.roundOffsets,l=a===void 0?!0:a,u={placement:dt(e.placement),variation:pn(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,oa(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:i,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,oa(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Du={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Ou,data:{}};var nr={passive:!0};function ju(t){var e=t.state,n=t.instance,r=t.options,o=r.scroll,s=o===void 0?!0:o,i=r.resize,a=i===void 0?!0:i,l=Ze(e.elements.popper),u=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",n.update,nr)}),a&&l.addEventListener("resize",n.update,nr),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",n.update,nr)}),a&&l.removeEventListener("resize",n.update,nr)}}const Pu={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ju,data:{}};var Au={left:"right",right:"left",bottom:"top",top:"bottom"};function hr(t){return t.replace(/left|right|bottom|top/g,function(e){return Au[e]})}var Nu={start:"end",end:"start"};function sa(t){return t.replace(/start|end/g,function(e){return Nu[e]})}function ks(t){var e=Ze(t),n=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Es(t){return hn(Mt(t)).left+ks(t).scrollLeft}function Fu(t,e){var n=Ze(t),r=Mt(t),o=n.visualViewport,s=r.clientWidth,i=r.clientHeight,a=0,l=0;if(o){s=o.width,i=o.height;var u=oi();(u||!u&&e==="fixed")&&(a=o.offsetLeft,l=o.offsetTop)}return{width:s,height:i,x:a+Es(t),y:l}}function Ru(t){var e,n=Mt(t),r=ks(t),o=(e=t.ownerDocument)==null?void 0:e.body,s=Kt(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),i=Kt(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-r.scrollLeft+Es(t),l=-r.scrollTop;return xt(o||n).direction==="rtl"&&(a+=Kt(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:i,x:a,y:l}}function Cs(t){var e=xt(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function ci(t){return["html","body","#document"].indexOf(ft(t))>=0?t.ownerDocument.body:et(t)&&Cs(t)?t:ci(eo(t))}function Dn(t,e){var n;e===void 0&&(e=[]);var r=ci(t),o=r===((n=t.ownerDocument)==null?void 0:n.body),s=Ze(r),i=o?[s].concat(s.visualViewport||[],Cs(r)?r:[]):r,a=e.concat(i);return o?a:a.concat(Dn(eo(i)))}function jo(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Tu(t,e){var n=hn(t,!1,e==="fixed");return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}function aa(t,e,n){return e===ni?jo(Fu(t,n)):Gt(e)?Tu(e,n):jo(Ru(Mt(t)))}function Mu(t){var e=Dn(eo(t)),n=["absolute","fixed"].indexOf(xt(t).position)>=0,r=n&&et(t)?qn(t):t;return Gt(r)?e.filter(function(o){return Gt(o)&&si(o,r)&&ft(o)!=="body"}):[]}function Bu(t,e,n,r){var o=e==="clippingParents"?Mu(t):[].concat(e),s=[].concat(o,[n]),i=s[0],a=s.reduce(function(l,u){var c=aa(t,u,r);return l.top=Kt(c.top,l.top),l.right=Ir(c.right,l.right),l.bottom=Ir(c.bottom,l.bottom),l.left=Kt(c.left,l.left),l},aa(t,i,r));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function ui(t){var e=t.reference,n=t.element,r=t.placement,o=r?dt(r):null,s=r?pn(r):null,i=e.x+e.width/2-n.width/2,a=e.y+e.height/2-n.height/2,l;switch(o){case He:l={x:i,y:e.y-n.height};break;case tt:l={x:i,y:e.y+e.height};break;case nt:l={x:e.x+e.width,y:a};break;case Ve:l={x:e.x-n.width,y:a};break;default:l={x:e.x,y:e.y}}var u=o?xs(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case dn:l[u]=l[u]-(e[c]/2-n[c]/2);break;case Rn:l[u]=l[u]+(e[c]/2-n[c]/2);break}}return l}function Tn(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=r===void 0?t.placement:r,s=n.strategy,i=s===void 0?t.strategy:s,a=n.boundary,l=a===void 0?ou:a,u=n.rootBoundary,c=u===void 0?ni:u,d=n.elementContext,p=d===void 0?En:d,h=n.altBoundary,v=h===void 0?!1:h,f=n.padding,m=f===void 0?0:f,y=ii(typeof m!="number"?m:li(m,Vn)),g=p===En?su:En,_=t.rects.popper,x=t.elements[v?g:p],E=Bu(Gt(x)?x:x.contextElement||Mt(t.elements.popper),l,c,i),I=hn(t.elements.reference),C=ui({reference:I,element:_,strategy:"absolute",placement:o}),N=jo(Object.assign({},_,C)),j=p===En?N:I,R={top:E.top-j.top+y.top,bottom:j.bottom-E.bottom+y.bottom,left:E.left-j.left+y.left,right:j.right-E.right+y.right},W=t.modifiersData.offset;if(p===En&&W){var D=W[o];Object.keys(R).forEach(function(M){var w=[nt,tt].indexOf(M)>=0?1:-1,T=[He,tt].indexOf(M)>=0?"y":"x";R[M]+=D[T]*w})}return R}function zu(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=n.boundary,s=n.rootBoundary,i=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?ri:l,c=pn(r),d=c?a?na:na.filter(function(v){return pn(v)===c}):Vn,p=d.filter(function(v){return u.indexOf(v)>=0});p.length===0&&(p=d);var h=p.reduce(function(v,f){return v[f]=Tn(t,{placement:f,boundary:o,rootBoundary:s,padding:i})[dt(f)],v},{});return Object.keys(h).sort(function(v,f){return h[v]-h[f]})}function Lu(t){if(dt(t)===ws)return[];var e=hr(t);return[sa(t),e,sa(e)]}function Wu(t){var e=t.state,n=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,i=n.altAxis,a=i===void 0?!0:i,l=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,h=n.flipVariations,v=h===void 0?!0:h,f=n.allowedAutoPlacements,m=e.options.placement,y=dt(m),g=y===m,_=l||(g||!v?[hr(m)]:Lu(m)),x=[m].concat(_).reduce(function(J,Z){return J.concat(dt(Z)===ws?zu(e,{placement:Z,boundary:c,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:f}):Z)},[]),E=e.rects.reference,I=e.rects.popper,C=new Map,N=!0,j=x[0],R=0;R=0,T=w?"width":"height",V=Tn(e,{placement:W,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),A=w?M?nt:Ve:M?tt:He;E[T]>I[T]&&(A=hr(A));var X=hr(A),$=[];if(s&&$.push(V[D]<=0),a&&$.push(V[A]<=0,V[X]<=0),$.every(function(J){return J})){j=W,N=!1;break}C.set(W,$)}if(N)for(var ne=v?3:1,z=function(Z){var me=x.find(function(be){var le=C.get(be);if(le)return le.slice(0,Z).every(function(ue){return ue})});if(me)return j=me,"break"},B=ne;B>0;B--){var te=z(B);if(te==="break")break}e.placement!==j&&(e.modifiersData[r]._skip=!0,e.placement=j,e.reset=!0)}}const Uu={name:"flip",enabled:!0,phase:"main",fn:Wu,requiresIfExists:["offset"],data:{_skip:!1}};function ia(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function la(t){return[He,nt,tt,Ve].some(function(e){return t[e]>=0})}function Ku(t){var e=t.state,n=t.name,r=e.rects.reference,o=e.rects.popper,s=e.modifiersData.preventOverflow,i=Tn(e,{elementContext:"reference"}),a=Tn(e,{altBoundary:!0}),l=ia(i,r),u=ia(a,o,s),c=la(l),d=la(u);e.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const $u={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Ku};function Hu(t,e,n){var r=dt(t),o=[Ve,He].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,i=s[0],a=s[1];return i=i||0,a=(a||0)*o,[Ve,nt].indexOf(r)>=0?{x:a,y:i}:{x:i,y:a}}function Vu(t){var e=t.state,n=t.options,r=t.name,o=n.offset,s=o===void 0?[0,0]:o,i=ri.reduce(function(c,d){return c[d]=Hu(d,e.rects,s),c},{}),a=i[e.placement],l=a.x,u=a.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=u),e.modifiersData[r]=i}const qu={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Vu};function Gu(t){var e=t.state,n=t.name;e.modifiersData[n]=ui({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const Zu={name:"popperOffsets",enabled:!0,phase:"read",fn:Gu,data:{}};function Yu(t){return t==="x"?"y":"x"}function Ju(t){var e=t.state,n=t.options,r=t.name,o=n.mainAxis,s=o===void 0?!0:o,i=n.altAxis,a=i===void 0?!1:i,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,h=p===void 0?!0:p,v=n.tetherOffset,f=v===void 0?0:v,m=Tn(e,{boundary:l,rootBoundary:u,padding:d,altBoundary:c}),y=dt(e.placement),g=pn(e.placement),_=!g,x=xs(y),E=Yu(x),I=e.modifiersData.popperOffsets,C=e.rects.reference,N=e.rects.popper,j=typeof f=="function"?f(Object.assign({},e.rects,{placement:e.placement})):f,R=typeof j=="number"?{mainAxis:j,altAxis:j}:Object.assign({mainAxis:0,altAxis:0},j),W=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,D={x:0,y:0};if(I){if(s){var M,w=x==="y"?He:Ve,T=x==="y"?tt:nt,V=x==="y"?"height":"width",A=I[x],X=A+m[w],$=A-m[T],ne=h?-N[V]/2:0,z=g===dn?C[V]:N[V],B=g===dn?-N[V]:-C[V],te=e.elements.arrow,J=h&&te?_s(te):{width:0,height:0},Z=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:ai(),me=Z[w],be=Z[T],le=On(0,C[V],J[V]),ue=_?C[V]/2-ne-le-me-R.mainAxis:z-le-me-R.mainAxis,ke=_?-C[V]/2+ne+le+be+R.mainAxis:B+le+be+R.mainAxis,ye=e.elements.arrow&&qn(e.elements.arrow),pe=ye?x==="y"?ye.clientTop||0:ye.clientLeft||0:0,Ce=(M=W==null?void 0:W[x])!=null?M:0,b=A+ue-Ce-pe,K=A+ke-Ce,U=On(h?Ir(X,b):X,A,h?Kt($,K):$);I[x]=U,D[x]=U-A}if(a){var O,S=x==="x"?He:Ve,F=x==="x"?tt:nt,q=I[E],G=E==="y"?"height":"width",L=q+m[S],Q=q-m[F],re=[He,Ve].indexOf(y)!==-1,ee=(O=W==null?void 0:W[E])!=null?O:0,se=re?L:q-C[G]-N[G]-ee+R.altAxis,ve=re?q+C[G]+N[G]-ee-R.altAxis:Q,he=h&&re?_u(se,q,ve):On(h?se:L,q,h?ve:Q);I[E]=he,D[E]=he-q}e.modifiersData[r]=D}}const Xu={name:"preventOverflow",enabled:!0,phase:"main",fn:Ju,requiresIfExists:["offset"]};function Qu(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function ed(t){return t===Ze(t)||!et(t)?ks(t):Qu(t)}function td(t){var e=t.getBoundingClientRect(),n=fn(e.width)/t.offsetWidth||1,r=fn(e.height)/t.offsetHeight||1;return n!==1||r!==1}function nd(t,e,n){n===void 0&&(n=!1);var r=et(e),o=et(e)&&td(e),s=Mt(e),i=hn(t,o,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((ft(e)!=="body"||Cs(s))&&(a=ed(e)),et(e)?(l=hn(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=Es(s))),{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function rd(t){var e=new Map,n=new Set,r=[];t.forEach(function(s){e.set(s.name,s)});function o(s){n.add(s.name);var i=[].concat(s.requires||[],s.requiresIfExists||[]);i.forEach(function(a){if(!n.has(a)){var l=e.get(a);l&&o(l)}}),r.push(s)}return t.forEach(function(s){n.has(s.name)||o(s)}),r}function od(t){var e=rd(t);return mu.reduce(function(n,r){return n.concat(e.filter(function(o){return o.phase===r}))},[])}function sd(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t())})})),e}}function ad(t){var e=t.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(e).map(function(n){return e[n]})}var ca={placement:"bottom",modifiers:[],strategy:"absolute"};function ua(){for(var t=arguments.length,e=new Array(t),n=0;n{}),_=P.useCallback(()=>{var R;!e||!v.current||!f.current||((R=g.current)==null||R.call(g),m.current=cd(v.current,f.current,{placement:y,modifiers:[eu,Jc,Yc,{...Zc,enabled:!!p},{name:"eventListeners",...Gc(i)},{name:"arrow",options:{padding:s}},{name:"offset",options:{offset:a??[0,l]}},{name:"flip",enabled:!!u,options:{padding:8}},{name:"preventOverflow",enabled:!!d,options:{boundary:c}},...n??[]],strategy:o}),m.current.forceUpdate(),g.current=m.current.destroy)},[y,e,n,p,i,s,a,l,u,d,c,o]);P.useEffect(()=>()=>{var R;!v.current&&!f.current&&((R=m.current)==null||R.destroy(),m.current=null)},[]);const x=P.useCallback(R=>{v.current=R,_()},[_]),E=P.useCallback((R={},W=null)=>({...R,ref:Me(x,W)}),[x]),I=P.useCallback(R=>{f.current=R,_()},[_]),C=P.useCallback((R={},W=null)=>({...R,ref:Me(I,W),style:{...R.style,position:o,minWidth:p?void 0:"max-content",inset:"0 auto auto 0"}}),[o,I,p]),N=P.useCallback((R={},W=null)=>{const{size:D,shadowColor:M,bg:w,style:T,...V}=R;return{...V,ref:W,"data-popper-arrow":"",style:ud(R)}},[]),j=P.useCallback((R={},W=null)=>({...R,ref:W,"data-popper-arrow-inner":""}),[]);return{update(){var R;(R=m.current)==null||R.update()},forceUpdate(){var R;(R=m.current)==null||R.forceUpdate()},transformOrigin:Ne.transformOrigin.varRef,referenceRef:x,popperRef:I,getPopperProps:C,getArrowProps:N,getArrowInnerProps:j,getReferenceProps:E}}function ud(t){const{size:e,shadowColor:n,bg:r,style:o}=t,s={...o,position:"absolute"};return e&&(s["--popper-arrow-size"]=e),n&&(s["--popper-arrow-shadow-color"]=n),r&&(s["--popper-arrow-bg"]=r),s}function Is(t={}){const{onClose:e,onOpen:n,isOpen:r,id:o}=t,s=Wt(n),i=Wt(e),[a,l]=P.useState(t.defaultIsOpen||!1),u=r!==void 0?r:a,c=r!==void 0,d=P.useId(),p=o??`disclosure-${d}`,h=P.useCallback(()=>{c||l(!1),i==null||i()},[c,i]),v=P.useCallback(()=>{c||l(!0),s==null||s()},[c,s]),f=P.useCallback(()=>{u?h():v()},[u,v,h]);function m(g={}){return{...g,"aria-expanded":u,"aria-controls":p,onClick(_){var x;(x=g.onClick)==null||x.call(g,_),f()}}}function y(g={}){return{...g,hidden:!u,id:p}}return{isOpen:u,onOpen:v,onClose:h,onToggle:f,isControlled:c,getButtonProps:m,getDisclosureProps:y}}function dd(t){const{ref:e,handler:n,enabled:r=!0}=t,o=Wt(n),i=P.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;P.useEffect(()=>{if(!r)return;const a=d=>{uo(d,e)&&(i.isPointerDown=!0)},l=d=>{if(i.ignoreEmulatedMouseEvents){i.ignoreEmulatedMouseEvents=!1;return}i.isPointerDown&&n&&uo(d,e)&&(i.isPointerDown=!1,o(d))},u=d=>{i.ignoreEmulatedMouseEvents=!0,n&&i.isPointerDown&&uo(d,e)&&(i.isPointerDown=!1,o(d))},c=di(e.current);return c.addEventListener("mousedown",a,!0),c.addEventListener("mouseup",l,!0),c.addEventListener("touchstart",a,!0),c.addEventListener("touchend",u,!0),()=>{c.removeEventListener("mousedown",a,!0),c.removeEventListener("mouseup",l,!0),c.removeEventListener("touchstart",a,!0),c.removeEventListener("touchend",u,!0)}},[n,e,o,i,r])}function uo(t,e){var n;const r=t.target;return r&&!di(r).contains(r)?!1:!((n=e.current)!=null&&n.contains(r))}function di(t){var e;return(e=t==null?void 0:t.ownerDocument)!=null?e:document}function fi(t){const{isOpen:e,ref:n}=t,[r,o]=P.useState(e),[s,i]=P.useState(!1);return P.useEffect(()=>{s||(o(e),i(!0))},[e,s,r]),on(()=>n.current,"animationend",()=>{o(e)}),{present:!(e?!1:!r),onComplete(){var l;const u=Tl(n.current),c=new u.CustomEvent("animationend",{bubbles:!0});(l=n.current)==null||l.dispatchEvent(c)}}}function Os(t){const{wasSelected:e,enabled:n,isSelected:r,mode:o="unmount"}=t;return!!(!n||r||o==="keepMounted"&&e)}var[fd,hd,pd,md]=za(),[yd,Gn]=rt({strict:!1,name:"MenuContext"});function vd(t,...e){const n=P.useId(),r=t||n;return P.useMemo(()=>e.map(o=>`${o}-${r}`),[r,e])}function hi(t){var e;return(e=t==null?void 0:t.ownerDocument)!=null?e:document}function da(t){return hi(t).activeElement===t}function gd(t={}){const{id:e,closeOnSelect:n=!0,closeOnBlur:r=!0,initialFocusRef:o,autoSelect:s=!0,isLazy:i,isOpen:a,defaultIsOpen:l,onClose:u,onOpen:c,placement:d="bottom-start",lazyBehavior:p="unmount",direction:h,computePositionOnMount:v=!1,...f}=t,m=P.useRef(null),y=P.useRef(null),g=pd(),_=P.useCallback(()=>{requestAnimationFrame(()=>{var te;(te=m.current)==null||te.focus({preventScroll:!1})})},[]),x=P.useCallback(()=>{const te=setTimeout(()=>{var J;if(o)(J=o.current)==null||J.focus();else{const Z=g.firstEnabled();Z&&M(Z.index)}});X.current.add(te)},[g,o]),E=P.useCallback(()=>{const te=setTimeout(()=>{const J=g.lastEnabled();J&&M(J.index)});X.current.add(te)},[g]),I=P.useCallback(()=>{c==null||c(),s?x():_()},[s,x,_,c]),{isOpen:C,onOpen:N,onClose:j,onToggle:R}=Is({isOpen:a,defaultIsOpen:l,onClose:u,onOpen:I});dd({enabled:C&&r,ref:m,handler:te=>{var J;(J=y.current)!=null&&J.contains(te.target)||j()}});const W=Ss({...f,enabled:C||v,placement:d,direction:h}),[D,M]=P.useState(-1);qr(()=>{C||M(-1)},[C]),ti(m,{focusRef:y,visible:C,shouldFocus:!0});const w=fi({isOpen:C,ref:m}),[T,V]=vd(e,"menu-button","menu-list"),A=P.useCallback(()=>{N(),_()},[N,_]),X=P.useRef(new Set([]));P.useEffect(()=>{const te=X.current;return()=>{te.forEach(J=>clearTimeout(J)),te.clear()}},[]);const $=P.useCallback(()=>{N(),x()},[x,N]),ne=P.useCallback(()=>{N(),E()},[N,E]),z=P.useCallback(()=>{var te,J;const Z=hi(m.current),me=(te=m.current)==null?void 0:te.contains(Z.activeElement);if(!(C&&!me))return;const le=(J=g.item(D))==null?void 0:J.node;le==null||le.focus({preventScroll:!0})},[C,D,g]),B=P.useRef(null);return{openAndFocusMenu:A,openAndFocusFirstItem:$,openAndFocusLastItem:ne,onTransitionEnd:z,unstable__animationState:w,descendants:g,popper:W,buttonId:T,menuId:V,forceUpdate:W.forceUpdate,orientation:"vertical",isOpen:C,onToggle:R,onOpen:N,onClose:j,menuRef:m,buttonRef:y,focusedIndex:D,closeOnSelect:n,closeOnBlur:r,autoSelect:s,setFocusedIndex:M,isLazy:i,lazyBehavior:p,initialFocusRef:o,rafId:B}}function zp(t={},e=null){const n=Gn(),{onToggle:r,popper:o,openAndFocusFirstItem:s,openAndFocusLastItem:i}=n,a=P.useCallback(l=>{const u=l.key,d={Enter:s,ArrowDown:s,ArrowUp:i}[u];d&&(l.preventDefault(),l.stopPropagation(),d(l))},[s,i]);return{...t,ref:Me(n.buttonRef,e,o.referenceRef),id:n.buttonId,"data-active":lt(n.isOpen),"aria-expanded":n.isOpen,"aria-haspopup":"menu","aria-controls":n.menuId,onClick:De(t.onClick,r),onKeyDown:De(t.onKeyDown,a)}}function Po(t){var e;return _d(t)&&!!((e=t==null?void 0:t.getAttribute("role"))!=null&&e.startsWith("menuitem"))}function wd(t={},e=null){const n=Gn();if(!n)throw new Error("useMenuContext: context is undefined. Seems you forgot to wrap component within ");const{focusedIndex:r,setFocusedIndex:o,menuRef:s,isOpen:i,onClose:a,menuId:l,isLazy:u,lazyBehavior:c,unstable__animationState:d}=n,p=hd(),h=Bc({preventDefault:y=>y.key!==" "&&Po(y.target)}),v=P.useCallback(y=>{if(!y.currentTarget.contains(y.target))return;const g=y.key,x={Tab:I=>I.preventDefault(),Escape:a,ArrowDown:()=>{const I=p.nextEnabled(r);I&&o(I.index)},ArrowUp:()=>{const I=p.prevEnabled(r);I&&o(I.index)}}[g];if(x){y.preventDefault(),x(y);return}const E=h(I=>{const C=zc(p.values(),I,N=>{var j,R;return(R=(j=N==null?void 0:N.node)==null?void 0:j.textContent)!=null?R:""},p.item(r));if(C){const N=p.indexOf(C.node);o(N)}});Po(y.target)&&E(y)},[p,r,h,a,o]),f=P.useRef(!1);i&&(f.current=!0);const m=Os({wasSelected:f.current,enabled:u,mode:c,isSelected:d.present});return{...t,ref:Me(s,e),children:m?t.children:null,tabIndex:-1,role:"menu",id:l,style:{...t.style,transformOrigin:"var(--popper-transform-origin)"},"aria-orientation":"vertical",onKeyDown:De(t.onKeyDown,v)}}function bd(t={}){const{popper:e,isOpen:n}=Gn();return e.getPopperProps({...t,style:{visibility:n?"visible":"hidden",...t.style}})}function pi(t={},e=null){const{onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onClick:s,onFocus:i,isDisabled:a,isFocusable:l,closeOnSelect:u,type:c,...d}=t,p=Gn(),{setFocusedIndex:h,focusedIndex:v,closeOnSelect:f,onClose:m,menuRef:y,isOpen:g,menuId:_,rafId:x}=p,E=P.useRef(null),I=`${_}-menuitem-${P.useId()}`,{index:C,register:N}=md({disabled:a&&!l}),j=P.useCallback(A=>{n==null||n(A),!a&&h(C)},[h,C,a,n]),R=P.useCallback(A=>{r==null||r(A),E.current&&!da(E.current)&&j(A)},[j,r]),W=P.useCallback(A=>{o==null||o(A),!a&&h(-1)},[h,a,o]),D=P.useCallback(A=>{s==null||s(A),Po(A.currentTarget)&&(u??f)&&m()},[m,s,f,u]),M=P.useCallback(A=>{i==null||i(A),h(C)},[h,i,C]),w=C===v,T=a&&!l;qr(()=>{if(g)return w&&!T&&E.current?(x.current&&cancelAnimationFrame(x.current),x.current=requestAnimationFrame(()=>{var A;(A=E.current)==null||A.focus({preventScroll:!0}),x.current=null})):y.current&&!da(y.current)&&y.current.focus({preventScroll:!0}),()=>{x.current&&cancelAnimationFrame(x.current)}},[w,T,y,g]);const V=ei({onClick:D,onFocus:M,onMouseEnter:j,onMouseMove:R,onMouseLeave:W,ref:Me(N,E,e),isDisabled:a,isFocusable:l});return{...d,...V,type:c??V.type,id:I,role:"menuitem",tabIndex:w?0:-1}}function Lp(t={},e=null){const{type:n="radio",isChecked:r,...o}=t;return{...pi(o,e),role:`menuitem${n}`,"aria-checked":r}}function Wp(t={}){const{children:e,type:n="radio",value:r,defaultValue:o,onChange:s,...i}=t,l=n==="radio"?"":[],[u,c]=La({defaultValue:o??l,value:r,onChange:s}),d=P.useCallback(v=>{if(n==="radio"&&typeof u=="string"&&c(v),n==="checkbox"&&Array.isArray(u)){const f=u.includes(v)?u.filter(m=>m!==v):u.concat(v);c(f)}},[u,c,n]),h=gs(e).map(v=>{if(v.type.id!=="MenuItemOption")return v;const f=y=>{var g,_;d(v.props.value),(_=(g=v.props).onClick)==null||_.call(g,y)},m=n==="radio"?v.props.value===u:u.includes(v.props.value);return P.cloneElement(v,{type:n,onClick:f,isChecked:m})});return{...i,children:h}}function _d(t){var e;if(!xd(t))return!1;const n=(e=t.ownerDocument.defaultView)!=null?e:window;return t instanceof n.HTMLElement}function xd(t){return t!=null&&typeof t=="object"&&"nodeType"in t&&t.nodeType===Node.ELEMENT_NODE}var[kd,to]=rt({name:"MenuStylesContext",errorMessage:`useMenuStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Ds=t=>{const{children:e}=t,n=Rt("Menu",t),r=Je(t),{direction:o}=fs(),{descendants:s,...i}=gd({...r,direction:o}),a=P.useMemo(()=>i,[i]),{isOpen:l,onClose:u,forceUpdate:c}=a;return k.jsx(fd,{value:s,children:k.jsx(yd,{value:a,children:k.jsx(kd,{value:n,children:ja(e,{isOpen:l,onClose:u,forceUpdate:c})})})})};Ds.displayName="Menu";var mi=fe((t,e)=>{const n=to();return k.jsx(de.span,{ref:e,...t,__css:n.command,className:"chakra-menu__command"})});mi.displayName="MenuCommand";var Ed=fe((t,e)=>{const{type:n,...r}=t,o=to(),s=r.as||n?n??void 0:"button",i=P.useMemo(()=>({textDecoration:"none",color:"inherit",userSelect:"none",display:"flex",width:"100%",alignItems:"center",textAlign:"start",flex:"0 0 auto",outline:0,...o.item}),[o.item]);return k.jsx(de.button,{ref:e,type:s,...r,__css:i})}),yi=t=>{const{className:e,children:n,...r}=t,o=to(),s=P.Children.only(n),i=P.isValidElement(s)?P.cloneElement(s,{focusable:"false","aria-hidden":!0,className:xe("chakra-menu__icon",s.props.className)}):null,a=xe("chakra-menu__icon-wrapper",e);return k.jsx(de.span,{className:a,...r,__css:o.icon,children:i})};yi.displayName="MenuIcon";var Ct=fe((t,e)=>{const{icon:n,iconSpacing:r="0.75rem",command:o,commandSpacing:s="0.75rem",children:i,...a}=t,l=pi(a,e),c=n||o?k.jsx("span",{style:{pointerEvents:"none",flex:1},children:i}):i;return k.jsxs(Ed,{...l,className:xe("chakra-menu__menuitem",l.className),children:[n&&k.jsx(yi,{fontSize:"0.8em",marginEnd:r,children:n}),c,o&&k.jsx(mi,{marginStart:s,children:o})]})});Ct.displayName="MenuItem";var Cd={enter:{visibility:"visible",opacity:1,scale:1,transition:{duration:.2,ease:[.4,0,.2,1]}},exit:{transitionEnd:{visibility:"hidden"},opacity:0,scale:.8,transition:{duration:.1,easings:"easeOut"}}},Sd=de(hs.div),js=fe(function(e,n){var r,o;const{rootProps:s,motionProps:i,...a}=e,{isOpen:l,onTransitionEnd:u,unstable__animationState:c}=Gn(),d=wd(a,n),p=bd(s),h=to();return k.jsx(de.div,{...p,__css:{zIndex:(o=e.zIndex)!=null?o:(r=h.list)==null?void 0:r.zIndex},children:k.jsx(Sd,{variants:Cd,initial:!1,animate:l?"enter":"exit",__css:{outline:0,...h.list},...i,className:xe("chakra-menu__menu-list",d.className),...d,onUpdate:u,onAnimationComplete:Pa(c.onComplete,d.onAnimationComplete)})})});js.displayName="MenuList";var[Id,Zn]=rt({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within ``"}),[Od,Ps]=rt({name:"PopoverStylesContext",errorMessage:`usePopoverStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `});function vi(t){const e=P.Children.only(t.children),{getTriggerProps:n}=Zn();return P.cloneElement(e,n(e.props,e.ref))}vi.displayName="PopoverTrigger";var en={click:"click",hover:"hover"};function Dd(t={}){const{closeOnBlur:e=!0,closeOnEsc:n=!0,initialFocusRef:r,id:o,returnFocusOnClose:s=!0,autoFocus:i=!0,arrowSize:a,arrowShadowColor:l,trigger:u=en.click,openDelay:c=200,closeDelay:d=200,isLazy:p,lazyBehavior:h="unmount",computePositionOnMount:v,...f}=t,{isOpen:m,onClose:y,onOpen:g,onToggle:_}=Is(t),x=P.useRef(null),E=P.useRef(null),I=P.useRef(null),C=P.useRef(!1),N=P.useRef(!1);m&&(N.current=!0);const[j,R]=P.useState(!1),[W,D]=P.useState(!1),M=P.useId(),w=o??M,[T,V,A,X]=["popover-trigger","popover-content","popover-header","popover-body"].map(K=>`${K}-${w}`),{referenceRef:$,getArrowProps:ne,getPopperProps:z,getArrowInnerProps:B,forceUpdate:te}=Ss({...f,enabled:m||!!v}),J=fi({isOpen:m,ref:I});_c({enabled:m,ref:E}),ti(I,{focusRef:E,visible:m,shouldFocus:s&&u===en.click}),Kc(I,{focusRef:r,visible:m,shouldFocus:i&&u===en.click});const Z=Os({wasSelected:N.current,enabled:p,mode:h,isSelected:J.present}),me=P.useCallback((K={},U=null)=>{const O={...K,style:{...K.style,transformOrigin:Ne.transformOrigin.varRef,[Ne.arrowSize.var]:a?`${a}px`:void 0,[Ne.arrowShadowColor.var]:l},ref:Me(I,U),children:Z?K.children:null,id:V,tabIndex:-1,role:"dialog",onKeyDown:De(K.onKeyDown,S=>{n&&S.key==="Escape"&&y()}),onBlur:De(K.onBlur,S=>{const F=fa(S),q=fo(I.current,F),G=fo(E.current,F);m&&e&&(!q&&!G)&&y()}),"aria-labelledby":j?A:void 0,"aria-describedby":W?X:void 0};return u===en.hover&&(O.role="tooltip",O.onMouseEnter=De(K.onMouseEnter,()=>{C.current=!0}),O.onMouseLeave=De(K.onMouseLeave,S=>{S.nativeEvent.relatedTarget!==null&&(C.current=!1,setTimeout(()=>y(),d))})),O},[Z,V,j,A,W,X,u,n,y,m,e,d,l,a]),be=P.useCallback((K={},U=null)=>z({...K,style:{visibility:m?"visible":"hidden",...K.style}},U),[m,z]),le=P.useCallback((K,U=null)=>({...K,ref:Me(U,x,$)}),[x,$]),ue=P.useRef(),ke=P.useRef(),ye=P.useCallback(K=>{x.current==null&&$(K)},[$]),pe=P.useCallback((K={},U=null)=>{const O={...K,ref:Me(E,U,ye),id:T,"aria-haspopup":"dialog","aria-expanded":m,"aria-controls":V};return u===en.click&&(O.onClick=De(K.onClick,_)),u===en.hover&&(O.onFocus=De(K.onFocus,()=>{ue.current===void 0&&g()}),O.onBlur=De(K.onBlur,S=>{const F=fa(S),q=!fo(I.current,F);m&&e&&q&&y()}),O.onKeyDown=De(K.onKeyDown,S=>{S.key==="Escape"&&y()}),O.onMouseEnter=De(K.onMouseEnter,()=>{C.current=!0,ue.current=window.setTimeout(()=>g(),c)}),O.onMouseLeave=De(K.onMouseLeave,()=>{C.current=!1,ue.current&&(clearTimeout(ue.current),ue.current=void 0),ke.current=window.setTimeout(()=>{C.current===!1&&y()},d)})),O},[T,m,V,u,ye,_,g,e,y,c,d]);P.useEffect(()=>()=>{ue.current&&clearTimeout(ue.current),ke.current&&clearTimeout(ke.current)},[]);const Ce=P.useCallback((K={},U=null)=>({...K,id:A,ref:Me(U,O=>{R(!!O)})}),[A]),b=P.useCallback((K={},U=null)=>({...K,id:X,ref:Me(U,O=>{D(!!O)})}),[X]);return{forceUpdate:te,isOpen:m,onAnimationComplete:J.onComplete,onClose:y,getAnchorProps:le,getArrowProps:ne,getArrowInnerProps:B,getPopoverPositionerProps:be,getPopoverProps:me,getTriggerProps:pe,getHeaderProps:Ce,getBodyProps:b}}function fo(t,e){return t===e||(t==null?void 0:t.contains(e))}function fa(t){var e;const n=t.currentTarget.ownerDocument.activeElement;return(e=t.relatedTarget)!=null?e:n}function gi(t){const e=Rt("Popover",t),{children:n,...r}=Je(t),o=fs(),s=Dd({...r,direction:o.direction});return k.jsx(Id,{value:s,children:k.jsx(Od,{value:e,children:ja(n,{isOpen:s.isOpen,onClose:s.onClose,forceUpdate:s.forceUpdate})})})}gi.displayName="Popover";var wi=fe(function(e,n){const{getBodyProps:r}=Zn(),o=Ps();return k.jsx(de.div,{...r(e,n),className:xe("chakra-popover__body",e.className),__css:o.body})});wi.displayName="PopoverBody";var bi=fe(function(e,n){const{onClose:r}=Zn(),o=Ps();return k.jsx(Ml,{size:"sm",onClick:r,className:xe("chakra-popover__close-btn",e.className),__css:o.closeButton,ref:n,...e})});bi.displayName="PopoverCloseButton";function jd(t){if(t)return{enter:{...t.enter,visibility:"visible"},exit:{...t.exit,transitionEnd:{visibility:"hidden"}}}}var Pd={exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}},Ad=de(hs.section),_i=fe(function(e,n){const{variants:r=Pd,...o}=e,{isOpen:s}=Zn();return k.jsx(Ad,{ref:n,variants:jd(r),initial:!1,animate:s?"enter":"exit",...o})});_i.displayName="PopoverTransition";var xi=fe(function(e,n){const{rootProps:r,motionProps:o,...s}=e,{getPopoverProps:i,getPopoverPositionerProps:a,onAnimationComplete:l}=Zn(),u=Ps(),c={position:"relative",display:"flex",flexDirection:"column",...u.content};return k.jsx(de.div,{...a(r),__css:u.popper,className:"chakra-popover__popper",children:k.jsx(_i,{...o,...i(s,n),onAnimationComplete:Pa(l,s.onAnimationComplete),className:xe("chakra-popover__content",e.className),__css:c})})});xi.displayName="PopoverContent";var[Nd,Fd,Rd,Td]=za();function Md(t){var e;const{defaultIndex:n,onChange:r,index:o,isManual:s,isLazy:i,lazyBehavior:a="unmount",orientation:l="horizontal",direction:u="ltr",...c}=t,[d,p]=P.useState(n??0),[h,v]=La({defaultValue:n??0,value:o,onChange:r});P.useEffect(()=>{o!=null&&p(o)},[o]);const f=Rd(),m=P.useId();return{id:`tabs-${(e=t.id)!=null?e:m}`,selectedIndex:h,focusedIndex:d,setSelectedIndex:v,setFocusedIndex:p,isManual:s,isLazy:i,lazyBehavior:a,orientation:l,descendants:f,direction:u,htmlProps:c}}var[Bd,no]=rt({name:"TabsContext",errorMessage:"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within "});function zd(t){const{focusedIndex:e,orientation:n,direction:r}=no(),o=Fd(),s=P.useCallback(i=>{const a=()=>{var g;const _=o.nextEnabled(e);_&&((g=_.node)==null||g.focus())},l=()=>{var g;const _=o.prevEnabled(e);_&&((g=_.node)==null||g.focus())},u=()=>{var g;const _=o.firstEnabled();_&&((g=_.node)==null||g.focus())},c=()=>{var g;const _=o.lastEnabled();_&&((g=_.node)==null||g.focus())},d=n==="horizontal",p=n==="vertical",h=i.key,v=r==="ltr"?"ArrowLeft":"ArrowRight",f=r==="ltr"?"ArrowRight":"ArrowLeft",y={[v]:()=>d&&l(),[f]:()=>d&&a(),ArrowDown:()=>p&&a(),ArrowUp:()=>p&&l(),Home:u,End:c}[h];y&&(i.preventDefault(),y(i))},[o,e,n,r]);return{...t,role:"tablist","aria-orientation":n,onKeyDown:De(t.onKeyDown,s)}}function Ld(t){const{isDisabled:e=!1,isFocusable:n=!1,...r}=t,{setSelectedIndex:o,isManual:s,id:i,setFocusedIndex:a,selectedIndex:l}=no(),{index:u,register:c}=Td({disabled:e&&!n}),d=u===l,p=()=>{o(u)},h=()=>{a(u),!s&&!(e&&n)&&o(u)},v=ei({...r,ref:Me(c,t.ref),isDisabled:e,isFocusable:n,onClick:De(t.onClick,p)}),f="button";return{...v,id:ki(i,u),role:"tab",tabIndex:d?0:-1,type:f,"aria-selected":d,"aria-controls":Ei(i,u),onFocus:e?void 0:De(t.onFocus,h)}}var[Wd,Ud]=rt({});function Kd(t){const e=no(),{id:n,selectedIndex:r}=e,s=gs(t.children).map((i,a)=>P.createElement(Wd,{key:a,value:{isSelected:a===r,id:Ei(n,a),tabId:ki(n,a),selectedIndex:r}},i));return{...t,children:s}}function $d(t){const{children:e,...n}=t,{isLazy:r,lazyBehavior:o}=no(),{isSelected:s,id:i,tabId:a}=Ud(),l=P.useRef(!1);s&&(l.current=!0);const u=Os({wasSelected:l.current,isSelected:s,enabled:r,mode:o});return{tabIndex:0,...n,children:u?e:null,role:"tabpanel","aria-labelledby":a,hidden:!s,id:i}}function ki(t,e){return`${t}--tab-${e}`}function Ei(t,e){return`${t}--tabpanel-${e}`}var[Hd,ro]=rt({name:"TabsStylesContext",errorMessage:`useTabsStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Ci=fe(function(e,n){const r=Rt("Tabs",e),{children:o,className:s,...i}=Je(e),{htmlProps:a,descendants:l,...u}=Md(i),c=P.useMemo(()=>u,[u]),{isFitted:d,...p}=a,h={position:"relative",...r.root};return k.jsx(Nd,{value:l,children:k.jsx(Bd,{value:c,children:k.jsx(Hd,{value:r,children:k.jsx(de.div,{className:xe("chakra-tabs",s),ref:n,...p,__css:h,children:o})})})})});Ci.displayName="Tabs";var Si=fe(function(e,n){const r=zd({...e,ref:n}),s={display:"flex",...ro().tablist};return k.jsx(de.div,{...r,className:xe("chakra-tabs__tablist",e.className),__css:s})});Si.displayName="TabList";var Ao=fe(function(e,n){const r=$d({...e,ref:n}),o=ro();return k.jsx(de.div,{outline:"0",...r,className:xe("chakra-tabs__tab-panel",e.className),__css:o.tabpanel})});Ao.displayName="TabPanel";var Ii=fe(function(e,n){const r=Kd(e),o=ro();return k.jsx(de.div,{...r,width:"100%",ref:n,className:xe("chakra-tabs__tab-panels",e.className),__css:o.tabpanels})});Ii.displayName="TabPanels";var No=fe(function(e,n){const r=ro(),o=Ld({...e,ref:n}),s={outline:"0",display:"flex",alignItems:"center",justifyContent:"center",...r.tab};return k.jsx(de.button,{...o,className:xe("chakra-tabs__tab",e.className),__css:s})});No.displayName="Tab";var[Vd,Oi]=rt({name:"TagStylesContext",errorMessage:`useTagStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),mn=fe((t,e)=>{const n=Rt("Tag",t),r=Je(t),o={display:"inline-flex",verticalAlign:"top",alignItems:"center",maxWidth:"100%",...n.container};return k.jsx(Vd,{value:n,children:k.jsx(de.span,{ref:e,...r,__css:o})})});mn.displayName="Tag";var qd=fe((t,e)=>{const n=Oi();return k.jsx(de.span,{ref:e,noOfLines:1,...t,__css:n.label})});qd.displayName="TagLabel";var Gd=fe((t,e)=>k.jsx(Vr,{ref:e,verticalAlign:"top",marginEnd:"0.5rem",...t}));Gd.displayName="TagLeftIcon";var Zd=fe((t,e)=>k.jsx(Vr,{ref:e,verticalAlign:"top",marginStart:"0.5rem",...t}));Zd.displayName="TagRightIcon";var Di=t=>k.jsx(Vr,{verticalAlign:"inherit",viewBox:"0 0 512 512",...t,children:k.jsx("path",{fill:"currentColor",d:"M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z"})});Di.displayName="TagCloseIcon";var Yd=fe((t,e)=>{const{isDisabled:n,children:r,...o}=t,i={display:"flex",alignItems:"center",justifyContent:"center",outline:"0",...Oi().closeButton};return k.jsx(de.button,{ref:e,"aria-label":"close",...o,type:"button",disabled:n,__css:i,children:r||k.jsx(Di,{})})});Yd.displayName="TagCloseButton";var Jd={exit:{scale:.85,opacity:0,transition:{opacity:{duration:.15,easings:"easeInOut"},scale:{duration:.2,easings:"easeInOut"}}},enter:{scale:1,opacity:1,transition:{opacity:{easings:"easeOut",duration:.2},scale:{duration:.2,ease:[.175,.885,.4,1.1]}}}},Fo=t=>{var e;return((e=t.current)==null?void 0:e.ownerDocument)||document},pr=t=>{var e,n;return((n=(e=t.current)==null?void 0:e.ownerDocument)==null?void 0:n.defaultView)||window};function Xd(t={}){const{openDelay:e=0,closeDelay:n=0,closeOnClick:r=!0,closeOnMouseDown:o,closeOnScroll:s,closeOnPointerDown:i=o,closeOnEsc:a=!0,onOpen:l,onClose:u,placement:c,id:d,isOpen:p,defaultIsOpen:h,arrowSize:v=10,arrowShadowColor:f,arrowPadding:m,modifiers:y,isDisabled:g,gutter:_,offset:x,direction:E,...I}=t,{isOpen:C,onOpen:N,onClose:j}=Is({isOpen:p,defaultIsOpen:h,onOpen:l,onClose:u}),{referenceRef:R,getPopperProps:W,getArrowInnerProps:D,getArrowProps:M}=Ss({enabled:C,placement:c,arrowPadding:m,modifiers:y,gutter:_,offset:x,direction:E}),w=P.useId(),V=`tooltip-${d??w}`,A=P.useRef(null),X=P.useRef(),$=P.useCallback(()=>{X.current&&(clearTimeout(X.current),X.current=void 0)},[]),ne=P.useRef(),z=P.useCallback(()=>{ne.current&&(clearTimeout(ne.current),ne.current=void 0)},[]),B=P.useCallback(()=>{z(),j()},[j,z]),te=Qd(A,B),J=P.useCallback(()=>{if(!g&&!X.current){C&&te();const pe=pr(A);X.current=pe.setTimeout(N,e)}},[te,g,C,N,e]),Z=P.useCallback(()=>{$();const pe=pr(A);ne.current=pe.setTimeout(B,n)},[n,B,$]),me=P.useCallback(()=>{C&&r&&Z()},[r,Z,C]),be=P.useCallback(()=>{C&&i&&Z()},[i,Z,C]),le=P.useCallback(pe=>{C&&pe.key==="Escape"&&Z()},[C,Z]);on(()=>Fo(A),"keydown",a?le:void 0),on(()=>{if(!s)return null;const pe=A.current;if(!pe)return null;const Ce=Ya(pe);return Ce.localName==="body"?pr(A):Ce},"scroll",()=>{C&&s&&B()},{passive:!0,capture:!0}),P.useEffect(()=>{g&&($(),C&&j())},[g,C,j,$]),P.useEffect(()=>()=>{$(),z()},[$,z]),on(()=>A.current,"pointerleave",Z);const ue=P.useCallback((pe={},Ce=null)=>({...pe,ref:Me(A,Ce,R),onPointerEnter:De(pe.onPointerEnter,K=>{K.pointerType!=="touch"&&J()}),onClick:De(pe.onClick,me),onPointerDown:De(pe.onPointerDown,be),onFocus:De(pe.onFocus,J),onBlur:De(pe.onBlur,Z),"aria-describedby":C?V:void 0}),[J,Z,be,C,V,me,R]),ke=P.useCallback((pe={},Ce=null)=>W({...pe,style:{...pe.style,[Ne.arrowSize.var]:v?`${v}px`:void 0,[Ne.arrowShadowColor.var]:f}},Ce),[W,v,f]),ye=P.useCallback((pe={},Ce=null)=>{const b={...pe.style,position:"relative",transformOrigin:Ne.transformOrigin.varRef};return{ref:Ce,...I,...pe,id:V,role:"tooltip",style:b}},[I,V]);return{isOpen:C,show:J,hide:Z,getTriggerProps:ue,getTooltipProps:ye,getTooltipPositionerProps:ke,getArrowProps:M,getArrowInnerProps:D}}var ho="chakra-ui:close-tooltip";function Qd(t,e){return P.useEffect(()=>{const n=Fo(t);return n.addEventListener(ho,e),()=>n.removeEventListener(ho,e)},[e,t]),()=>{const n=Fo(t),r=pr(t);n.dispatchEvent(new r.CustomEvent(ho))}}function ef(t,e=[]){const n=Object.assign({},t);for(const r of e)r in n&&delete n[r];return n}function tf(t,e){const n={};for(const r of e)r in t&&(n[r]=t[r]);return n}var nf=de(hs.div),kt=fe((t,e)=>{var n,r;const o=Hn("Tooltip",t),s=Je(t),i=fs(),{children:a,label:l,shouldWrapChildren:u,"aria-label":c,hasArrow:d,bg:p,portalProps:h,background:v,backgroundColor:f,bgColor:m,motionProps:y,...g}=s,_=(r=(n=v??f)!=null?n:p)!=null?r:m;if(_){o.bg=_;const W=Bl(i,"colors",_);o[Ne.arrowBg.var]=W}const x=Xd({...g,direction:i.direction}),E=typeof a=="string"||u;let I;if(E)I=k.jsx(de.span,{display:"inline-block",tabIndex:0,...x.getTriggerProps(),children:a});else{const W=P.Children.only(a);I=P.cloneElement(W,x.getTriggerProps(W.props,W.ref))}const C=!!c,N=x.getTooltipProps({},e),j=C?ef(N,["role","id"]):N,R=tf(N,["role","id"]);return l?k.jsxs(k.Fragment,{children:[I,k.jsx(zl,{children:x.isOpen&&k.jsx(Aa,{...h,children:k.jsx(de.div,{...x.getTooltipPositionerProps(),__css:{zIndex:o.zIndex,pointerEvents:"none"},children:k.jsxs(nf,{variants:Jd,initial:"exit",animate:"enter",exit:"exit",...y,...j,__css:o,children:[l,C&&k.jsx(de.span,{srOnly:!0,...R,children:c}),d&&k.jsx(de.div,{"data-popper-arrow":!0,className:"chakra-tooltip__arrow-wrapper",children:k.jsx(de.div,{"data-popper-arrow-inner":!0,className:"chakra-tooltip__arrow",__css:{bg:o.bg}})})]})})})})]}):k.jsx(k.Fragment,{children:a})});kt.displayName="Tooltip";const rf="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let Mn=(t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t));for(;t--;)e+=rf[n[t]&63];return e},we=null;const ji=location.pathname.split("/").slice(0,-1).join("/");let Or=null;Tt(()=>import(ji+"/scripts/api.js"),__vite__mapDeps([])).then(t=>{Or=t==null?void 0:t.api});Tt(()=>import(ji+"/scripts/app.js"),__vite__mapDeps([])).then(t=>{we=t==null?void 0:t.app});function Ee(t,e){if(Or==null)throw console.error("api is null!"),new Error("api is null!");return Or.fetchApi(t,e)}async function of(t){console.warn("[workspace deprecated] getDB is deprecated",t);try{const e=await Ee(`/workspace/get_db?table=${t}`);return e.ok?await e.json():void 0}catch(e){console.error("Error fetching workspace:",e);return}}async function sf(t,e){try{return await(await Ee("/workspace/save_db",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({table:t,json:e})})).text()}catch(n){console.error("Error saving workspace:",n)}}async function af(t,e){try{return await(await Ee("/workspace/update_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_path:t,json_str:e})})).text()}catch(n){alert("Error saving workflow .json file: "+n),console.error("Error saving workspace:",n)}}async function lf(t,e=!1){try{return await(await Ee("/workspace/delete_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_path:t,deleteEmptyFolder:e})})).text()}catch(n){console.error("Error deleting file:",n)}}async function Up(t){try{return await(await Ee("/workspace/get_system_dir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({absolute_dir:t??""})})).json()}catch(e){console.error("Error getting workflows dir:",e)}}async function Kp(){try{return await(await Ee("/workspace/open_workflow_file_browser",{method:"POST",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error open workflows folder:",t)}}async function cf(){const e=await(await Ee("/workspace/get_my_workflows_dir")).json();return e.error&&alert(`Failed to fetch my workflows path: ${e.error}`),e}async function uf(){try{return await(await Ee("/model_manager/get_model_list",{method:"GET",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error get all models list:",t)}}async function $p(){try{return await(await Ee("/model_manager/get_folder_list",{method:"GET",headers:{"Content-Type":"application/json"}})).json()}catch(t){console.error("Error get all models list:",t)}}async function Hp(t){try{return await(await Ee("/model_manager/cancel_installation",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({save_path:t})})).text()}catch(e){console.error("Error move file:",e)}}async function Vp(t,e){try{return await(await Ee("/workspace/copy_json_files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({src:t,dst:e})})).json()}catch(n){console.error("Error copy flows to new directory:",n)}}const df="backup",Dr="workspace";let rr=null;function ff(){return new Promise((t,e)=>{const n=indexedDB.open("WorkspaceDB",3);n.onupgradeneeded=r=>{const o=r.target.result;o.objectStoreNames.contains(Dr)||o.createObjectStore(Dr,{keyPath:"id"})},n.onsuccess=r=>{t(r.target.result)},n.onerror=r=>{e(r.target.error)}})}async function hf(){try{return rr==null&&(rr=await ff()),new Promise((t,e)=>{if(rr==null)return e("indexDB is null");const o=rr.transaction([Dr],"readonly").objectStore(Dr).get(df);o.onsuccess=()=>{o.result?t(o.result.value):t(void 0)},o.onerror=()=>e(o.error)})}catch(t){console.error("Error while reading from database:",t)}}async function pf(){try{return await hf()}catch(t){console.error("Error retrieving data from IndexedDB:",t)}}const Se=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Fe=Object.keys,ze=Array.isArray;function Ke(t,e){return typeof e!="object"||Fe(e).forEach(function(n){t[n]=e[n]}),t}typeof Promise>"u"||Se.Promise||(Se.Promise=Promise);const Bn=Object.getPrototypeOf,mf={}.hasOwnProperty;function Ye(t,e){return mf.call(t,e)}function yn(t,e){typeof e=="function"&&(e=e(Bn(t))),(typeof Reflect>"u"?Fe:Reflect.ownKeys)(e).forEach(n=>{bt(t,n,e[n])})}const Pi=Object.defineProperty;function bt(t,e,n,r){Pi(t,e,Ke(n&&Ye(n,"get")&&typeof n.get=="function"?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function sn(t){return{from:function(e){return t.prototype=Object.create(e.prototype),bt(t.prototype,"constructor",t),{extend:yn.bind(null,t.prototype)}}}}const yf=Object.getOwnPropertyDescriptor;function As(t,e){let n;return yf(t,e)||(n=Bn(t))&&As(n,e)}const vf=[].slice;function jr(t,e,n){return vf.call(t,e,n)}function Ai(t,e){return e(t)}function Sn(t){if(!t)throw new Error("Assertion Failed")}function Ni(t){Se.setImmediate?setImmediate(t):setTimeout(t,0)}function Fi(t,e){return t.reduce((n,r,o)=>{var s=e(r,o);return s&&(n[s[0]]=s[1]),n},{})}function _t(t,e){if(Ye(t,e))return t[e];if(!e)return t;if(typeof e!="string"){for(var n=[],r=0,o=e.length;r["Int","Uint","Float"].map(e=>e+t+"Array")))).filter(t=>Se[t]),wf=Mi.map(t=>Se[t]);Fi(Mi,t=>[t,!0]);let It=null;function Yn(t){It=typeof WeakMap<"u"&&new WeakMap;const e=Ro(t);return It=null,e}function Ro(t){if(!t||typeof t!="object")return t;let e=It&&It.get(t);if(e)return e;if(ze(t)){e=[],It&&It.set(t,e);for(var n=0,r=t.length;n=0)e=t;else{const s=Bn(t);for(var o in e=s===Object.prototype?{}:Object.create(s),It&&It.set(t,e),t)Ye(t,o)&&(e[o]=Ro(t[o]))}return e}const{toString:bf}={};function To(t){return bf.call(t).slice(8,-1)}const Mo=typeof Symbol<"u"?Symbol.iterator:"@@iterator",_f=typeof Mo=="symbol"?function(t){var e;return t!=null&&(e=t[Mo])&&e.apply(t)}:function(){return null},rn={};function vt(t){var e,n,r,o;if(arguments.length===1){if(ze(t))return t.slice();if(this===rn&&typeof t=="string")return[t];if(o=_f(t)){for(n=[];!(r=o.next()).done;)n.push(r.value);return n}if(t==null)return[t];if(typeof(e=t.length)=="number"){for(n=new Array(e);e--;)n[e]=t[e];return n}return[t]}for(e=arguments.length,n=new Array(e);e--;)n[e]=arguments[e];return n}const Ns=typeof Symbol<"u"?t=>t[Symbol.toStringTag]==="AsyncFunction":()=>!1;var ht=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Bi(t,e){ht=t,zi=e}var zi=()=>!0;const xf=!new Error("").stack;function Jt(){if(xf)try{throw Jt.arguments,new Error}catch(t){return t}return new Error}function Bo(t,e){var n=t.stack;return n?(e=e||0,n.indexOf(t.name)===0&&(e+=(t.name+t.message).split(` -`).length),n.split(` -`).slice(e).filter(zi).map(r=>` -`+r).join("")):""}var Li=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Fs=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(Li),kf={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function an(t,e){this._e=Jt(),this.name=t,this.message=e}function Wi(t,e){return t+". Errors: "+Object.keys(e).map(n=>e[n].toString()).filter((n,r,o)=>o.indexOf(n)===r).join(` -`)}function Pr(t,e,n,r){this._e=Jt(),this.failures=e,this.failedKeys=r,this.successCount=n,this.message=Wi(t,e)}function jn(t,e){this._e=Jt(),this.name="BulkError",this.failures=Object.keys(e).map(n=>e[n]),this.failuresByPos=e,this.message=Wi(t,e)}sn(an).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+Bo(this._e,2))}},toString:function(){return this.name+": "+this.message}}),sn(Pr).from(an),sn(jn).from(an);var Rs=Fs.reduce((t,e)=>(t[e]=e+"Error",t),{});const Ef=an;var ce=Fs.reduce((t,e)=>{var n=e+"Error";function r(o,s){this._e=Jt(),this.name=n,o?typeof o=="string"?(this.message=`${o}${s?` - `+s:""}`,this.inner=s||null):typeof o=="object"&&(this.message=`${o.name} ${o.message}`,this.inner=o):(this.message=kf[e]||n,this.inner=null)}return sn(r).from(Ef),t[e]=r,t},{});ce.Syntax=SyntaxError,ce.Type=TypeError,ce.Range=RangeError;var ha=Li.reduce((t,e)=>(t[e+"Error"]=ce[e],t),{}),mr=Fs.reduce((t,e)=>(["Syntax","Type","Range"].indexOf(e)===-1&&(t[e+"Error"]=ce[e]),t),{});function _e(){}function zn(t){return t}function Cf(t,e){return t==null||t===zn?e:function(n){return e(t(n))}}function Zt(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function Sf(t,e){return t===_e?e:function(){var n=t.apply(this,arguments);n!==void 0&&(arguments[0]=n);var r=this.onsuccess,o=this.onerror;this.onsuccess=null,this.onerror=null;var s=e.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?Zt(r,this.onsuccess):r),o&&(this.onerror=this.onerror?Zt(o,this.onerror):o),s!==void 0?s:n}}function If(t,e){return t===_e?e:function(){t.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,e.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?Zt(n,this.onsuccess):n),r&&(this.onerror=this.onerror?Zt(r,this.onerror):r)}}function Of(t,e){return t===_e?e:function(n){var r=t.apply(this,arguments);Ke(n,r);var o=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var i=e.apply(this,arguments);return o&&(this.onsuccess=this.onsuccess?Zt(o,this.onsuccess):o),s&&(this.onerror=this.onerror?Zt(s,this.onerror):s),r===void 0?i===void 0?void 0:i:Ke(r,i)}}function Df(t,e){return t===_e?e:function(){return e.apply(this,arguments)!==!1&&t.apply(this,arguments)}}function Ts(t,e){return t===_e?e:function(){var n=t.apply(this,arguments);if(n&&typeof n.then=="function"){for(var r=this,o=arguments.length,s=new Array(o);o--;)s[o]=arguments[o];return n.then(function(){return e.apply(r,s)})}return e.apply(this,arguments)}}mr.ModifyError=Pr,mr.DexieError=an,mr.BulkError=jn;var Ln={};const Ui=100,[zo,Ar,Lo]=typeof Promise>"u"?[]:(()=>{let t=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[t,Bn(t),t];const e=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[e,Bn(e),t]})(),Ki=Ar&&Ar.then,yr=zo&&zo.constructor,Ms=!!Lo;var Wo=!1,jf=Lo?()=>{Lo.then(or)}:Se.setImmediate?setImmediate.bind(null,or):Se.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver(()=>{or(),t=null}).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(or,0)},Pn=function(t,e){In.push([t,e]),Nr&&(jf(),Nr=!1)},Uo=!0,Nr=!0,$t=[],vr=[],Ko=null,$o=zn,ln={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:ya,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach(t=>{try{ya(t[0],t[1])}catch{}})}},ae=ln,In=[],Ht=0,gr=[];function oe(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=_e,this._lib=!1;var e=this._PSD=ae;if(ht&&(this._stackHolder=Jt(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==Ln)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(this._state===!1&&Vo(this,this._value))}this._state=null,this._value=null,++e.ref,Hi(this,t)}const Ho={get:function(){var t=ae,e=Fr;function n(r,o){var s=!t.global&&(t!==ae||e!==Fr);const i=s&&!Et();var a=new oe((l,u)=>{Bs(this,new $i(Rr(r,t,s,i),Rr(o,t,s,i),l,u,t))});return ht&&Gi(a,this),a}return n.prototype=Ln,n},set:function(t){bt(this,"then",t&&t.prototype===Ln?Ho:{get:function(){return t},set:Ho.set})}};function $i(t,e,n,r,o){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof e=="function"?e:null,this.resolve=n,this.reject=r,this.psd=o}function Hi(t,e){try{e(n=>{if(t._state===null){if(n===t)throw new TypeError("A promise cannot be resolved with itself.");var r=t._lib&&Jn();n&&typeof n.then=="function"?Hi(t,(o,s)=>{n instanceof oe?n._then(o,s):n.then(o,s)}):(t._state=!0,t._value=n,Vi(t)),r&&Xn()}},Vo.bind(null,t))}catch(n){Vo(t,n)}}function Vo(t,e){if(vr.push(e),t._state===null){var n=t._lib&&Jn();e=$o(e),t._state=!1,t._value=e,ht&&e!==null&&typeof e=="object"&&!e._promise&&function(r,o,s){try{r.apply(null,s)}catch(i){o&&o(i)}}(()=>{var r=As(e,"stack");e._promise=t,bt(e,"stack",{get:()=>Wo?r&&(r.get?r.get.apply(e):r.value):t.stack})}),function(r){$t.some(o=>o._value===r._value)||$t.push(r)}(t),Vi(t),n&&Xn()}}function Vi(t){var e=t._listeners;t._listeners=[];for(var n=0,r=e.length;n{--Ht==0&&zs()},[]))}function Bs(t,e){if(t._state!==null){var n=t._state?e.onFulfilled:e.onRejected;if(n===null)return(t._state?e.resolve:e.reject)(t._value);++e.psd.ref,++Ht,Pn(Pf,[n,t,e])}else t._listeners.push(e)}function Pf(t,e,n){try{Ko=e;var r,o=e._value;e._state?r=t(o):(vr.length&&(vr=[]),r=t(o),vr.indexOf(o)===-1&&function(s){for(var i=$t.length;i;)if($t[--i]._value===s._value)return void $t.splice(i,1)}(e)),n.resolve(r)}catch(s){n.reject(s)}finally{Ko=null,--Ht==0&&zs(),--n.psd.ref||n.psd.finalize()}}function qi(t,e,n){if(e.length===n)return e;var r="";if(t._state===!1){var o,s,i=t._value;i!=null?(o=i.name||"Error",s=i.message||i,r=Bo(i,0)):(o=i,s=""),e.push(o+(s?": "+s:"")+r)}return ht&&((r=Bo(t._stackHolder,2))&&e.indexOf(r)===-1&&e.push(r),t._prev&&qi(t._prev,e,n)),e}function Gi(t,e){var n=e?e._numPrev+1:0;n<100&&(t._prev=e,t._numPrev=n)}function or(){Jn()&&Xn()}function Jn(){var t=Uo;return Uo=!1,Nr=!1,t}function Xn(){var t,e,n;do for(;In.length>0;)for(t=In,In=[],n=t.length,e=0;e0);Uo=!0,Nr=!0}function zs(){var t=$t;$t=[],t.forEach(r=>{r._PSD.onunhandled.call(null,r._value,r)});for(var e=gr.slice(0),n=e.length;n;)e[--n]()}function sr(t){return new oe(Ln,!1,t)}function Ie(t,e){var n=ae;return function(){var r=Jn(),o=ae;try{return At(n,!0),t.apply(this,arguments)}catch(s){e&&e(s)}finally{At(o,!1),r&&Xn()}}}yn(oe.prototype,{then:Ho,_then:function(t,e){Bs(this,new $i(null,null,t,e,ae))},catch:function(t){if(arguments.length===1)return this.then(null,t);var e=arguments[0],n=arguments[1];return typeof e=="function"?this.then(null,r=>r instanceof e?n(r):sr(r)):this.then(null,r=>r&&r.name===e?n(r):sr(r))},finally:function(t){return this.then(e=>(t(),e),e=>(t(),sr(e)))},stack:{get:function(){if(this._stack)return this._stack;try{Wo=!0;var t=qi(this,[],20).join(` -From previous: `);return this._state!==null&&(this._stack=t),t}finally{Wo=!1}}},timeout:function(t,e){return t<1/0?new oe((n,r)=>{var o=setTimeout(()=>r(new ce.Timeout(e)),t);this.then(n,r).finally(clearTimeout.bind(null,o))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&bt(oe.prototype,Symbol.toStringTag,"Dexie.Promise"),ln.env=Zi(),yn(oe,{all:function(){var t=vt.apply(null,arguments).map(ar);return new oe(function(e,n){t.length===0&&e([]);var r=t.length;t.forEach((o,s)=>oe.resolve(o).then(i=>{t[s]=i,--r||e(t)},n))})},resolve:t=>{if(t instanceof oe)return t;if(t&&typeof t.then=="function")return new oe((n,r)=>{t.then(n,r)});var e=new oe(Ln,!0,t);return Gi(e,Ko),e},reject:sr,race:function(){var t=vt.apply(null,arguments).map(ar);return new oe((e,n)=>{t.map(r=>oe.resolve(r).then(e,n))})},PSD:{get:()=>ae,set:t=>ae=t},totalEchoes:{get:()=>Fr},newPSD:Pt,usePSD:bn,scheduler:{get:()=>Pn,set:t=>{Pn=t}},rejectionMapper:{get:()=>$o,set:t=>{$o=t}},follow:(t,e)=>new oe((n,r)=>Pt((o,s)=>{var i=ae;i.unhandleds=[],i.onunhandled=s,i.finalize=Zt(function(){(function(a){function l(){a(),gr.splice(gr.indexOf(l),1)}gr.push(l),++Ht,Pn(()=>{--Ht==0&&zs()},[])})(()=>{this.unhandleds.length===0?o():s(this.unhandleds[0])})},i.finalize),t()},e,n,r))}),yr&&(yr.allSettled&&bt(oe,"allSettled",function(){const t=vt.apply(null,arguments).map(ar);return new oe(e=>{t.length===0&&e([]);let n=t.length;const r=new Array(n);t.forEach((o,s)=>oe.resolve(o).then(i=>r[s]={status:"fulfilled",value:i},i=>r[s]={status:"rejected",reason:i}).then(()=>--n||e(r)))})}),yr.any&&typeof AggregateError<"u"&&bt(oe,"any",function(){const t=vt.apply(null,arguments).map(ar);return new oe((e,n)=>{t.length===0&&n(new AggregateError([]));let r=t.length;const o=new Array(r);t.forEach((s,i)=>oe.resolve(s).then(a=>e(a),a=>{o[i]=a,--r||n(new AggregateError(o))}))})}));const Be={awaits:0,echoes:0,id:0};var Af=0,wr=[],po=0,Fr=0,Nf=0;function Pt(t,e,n,r){var o=ae,s=Object.create(o);s.parent=o,s.ref=0,s.global=!1,s.id=++Nf;var i=ln.env;s.env=Ms?{Promise:oe,PromiseProp:{value:oe,configurable:!0,writable:!0},all:oe.all,race:oe.race,allSettled:oe.allSettled,any:oe.any,resolve:oe.resolve,reject:oe.reject,nthen:pa(i.nthen,s),gthen:pa(i.gthen,s)}:{},e&&Ke(s,e),++o.ref,s.finalize=function(){--this.parent.ref||this.parent.finalize()};var a=bn(s,t,n,r);return s.ref===0&&s.finalize(),a}function wn(){return Be.id||(Be.id=++Af),++Be.awaits,Be.echoes+=Ui,Be.id}function Et(){return!!Be.awaits&&(--Be.awaits==0&&(Be.id=0),Be.echoes=Be.awaits*Ui,!0)}function ar(t){return Be.echoes&&t&&t.constructor===yr?(wn(),t.then(e=>(Et(),e),e=>(Et(),Re(e)))):t}function Ff(t){++Fr,Be.echoes&&--Be.echoes!=0||(Be.echoes=Be.id=0),wr.push(ae),At(t,!0)}function Rf(){var t=wr[wr.length-1];wr.pop(),At(t,!1)}function At(t,e){var n=ae;if((e?!Be.echoes||po++&&t===ae:!po||--po&&t===ae)||Yi(e?Ff.bind(null,t):Rf),t!==ae&&(ae=t,n===ln&&(ln.env=Zi()),Ms)){var r=ln.env.Promise,o=t.env;Ar.then=o.nthen,r.prototype.then=o.gthen,(n.global||t.global)&&(Object.defineProperty(Se,"Promise",o.PromiseProp),r.all=o.all,r.race=o.race,r.resolve=o.resolve,r.reject=o.reject,o.allSettled&&(r.allSettled=o.allSettled),o.any&&(r.any=o.any))}}function Zi(){var t=Se.Promise;return Ms?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(Se,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:Ar.then,gthen:t.prototype.then}:{}}function bn(t,e,n,r,o){var s=ae;try{return At(t,!0),e(n,r,o)}finally{At(s,!1)}}function Yi(t){Ki.call(zo,t)}function Rr(t,e,n,r){return typeof t!="function"?t:function(){var o=ae;n&&wn(),At(e,!0);try{return t.apply(this,arguments)}finally{At(o,!1),r&&Yi(Et)}}}function pa(t,e){return function(n,r){return t.call(this,Rr(n,e),Rr(r,e))}}(""+Ki).indexOf("[native code]")===-1&&(wn=Et=_e);const ma="unhandledrejection";function ya(t,e){var n;try{n=e.onuncatched(t)}catch{}if(n!==!1)try{var r,o={promise:e,reason:t};if(Se.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(ma,!0,!0),Ke(r,o)):Se.CustomEvent&&Ke(r=new CustomEvent(ma,{detail:o}),o),r&&Se.dispatchEvent&&(dispatchEvent(r),!Se.PromiseRejectionEvent&&Se.onunhandledrejection))try{Se.onunhandledrejection(r)}catch{}ht&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var Re=oe.reject;function qo(t,e,n,r){if(t.idbdb&&(t._state.openComplete||ae.letThrough||t._vip)){var o=t._createTransaction(e,n,t._dbSchema);try{o.create(),t._state.PR1398_maxLoop=3}catch(s){return s.name===Rs.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>qo(t,e,n,r))):Re(s)}return o._promise(e,(s,i)=>Pt(()=>(ae.trans=o,r(s,i,o)))).then(s=>o._completion.then(()=>s))}if(t._state.openComplete)return Re(new ce.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return Re(new ce.DatabaseClosed);t.open().catch(_e)}return t._state.dbReadyPromise.then(()=>qo(t,e,n,r))}const va="3.2.4",Lt="￿",Go=-1/0,mt="Invalid key provided. Keys must be of type string, number, Date or Array.",Ji="String expected.",An=[],oo=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),Tf=oo,Mf=oo,Xi=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),so="__dbnames",mo="readonly",yo="readwrite";function Yt(t,e){return t?e?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:t:e}const Qi={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function ir(t){return typeof t!="string"||/\./.test(t)?e=>e:e=>(e[t]===void 0&&t in e&&delete(e=Yn(e))[t],e)}class Bf{_trans(e,n,r){const o=this._tx||ae.trans,s=this.name;function i(l,u,c){if(!c.schema[s])throw new ce.NotFound("Table "+s+" not part of transaction");return n(c.idbtrans,c)}const a=Jn();try{return o&&o.db===this.db?o===ae.trans?o._promise(e,i,r):Pt(()=>o._promise(e,i,r),{trans:o,transless:ae.transless||ae}):qo(this.db,e,[this.name],i)}finally{a&&Xn()}}get(e,n){return e&&e.constructor===Object?this.where(e).first(n):this._trans("readonly",r=>this.core.get({trans:r,key:e}).then(o=>this.hook.reading.fire(o))).then(n)}where(e){if(typeof e=="string")return new this.db.WhereClause(this,e);if(ze(e))return new this.db.WhereClause(this,`[${e.join("+")}]`);const n=Fe(e);if(n.length===1)return this.where(n[0]).equals(e[n[0]]);const r=this.schema.indexes.concat(this.schema.primKey).filter(u=>u.compound&&n.every(c=>u.keyPath.indexOf(c)>=0)&&u.keyPath.every(c=>n.indexOf(c)>=0))[0];if(r&&this.db._maxKey!==Lt)return this.where(r.name).equals(r.keyPath.map(u=>e[u]));!r&&ht&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:o}=this.schema,s=this.db._deps.indexedDB;function i(u,c){try{return s.cmp(u,c)===0}catch{return!1}}const[a,l]=n.reduce(([u,c],d)=>{const p=o[d],h=e[d];return[u||p,u||!p?Yt(c,p&&p.multi?v=>{const f=_t(v,d);return ze(f)&&f.some(m=>i(h,m))}:v=>i(h,_t(v,d))):c]},[null,null]);return a?this.where(a.name).equals(e[a.keyPath]).filter(l):r?this.filter(l):this.where(n).equals("")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,ze(e)?`[${e.join("+")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const n=r=>{if(!r)return r;const o=Object.create(e.prototype);for(var s in r)if(Ye(r,s))try{o[s]=r[s]}catch{}return o};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=n,this.hook("reading",n),e}defineClass(){return this.mapToClass(function(e){Ke(this,e)})}add(e,n){const{auto:r,keyPath:o}=this.schema.primKey;let s=e;return o&&r&&(s=ir(o)(e)),this._trans("readwrite",i=>this.core.mutate({trans:i,type:"add",keys:n!=null?[n]:null,values:[s]})).then(i=>i.numFailures?oe.reject(i.failures[0]):i.lastResult).then(i=>{if(o)try{st(e,o,i)}catch{}return i})}update(e,n){if(typeof e!="object"||ze(e))return this.where(":id").equals(e).modify(n);{const r=_t(e,this.schema.primKey.keyPath);if(r===void 0)return Re(new ce.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?Fe(n).forEach(o=>{st(e,o,n[o])}):n(e,{value:e,primKey:r})}catch{}return this.where(":id").equals(r).modify(n)}}put(e,n){const{auto:r,keyPath:o}=this.schema.primKey;let s=e;return o&&r&&(s=ir(o)(e)),this._trans("readwrite",i=>this.core.mutate({trans:i,type:"put",values:[s],keys:n!=null?[n]:null})).then(i=>i.numFailures?oe.reject(i.failures[0]):i.lastResult).then(i=>{if(o)try{st(e,o,i)}catch{}return i})}delete(e){return this._trans("readwrite",n=>this.core.mutate({trans:n,type:"delete",keys:[e]})).then(n=>n.numFailures?oe.reject(n.failures[0]):void 0)}clear(){return this._trans("readwrite",e=>this.core.mutate({trans:e,type:"deleteRange",range:Qi})).then(e=>e.numFailures?oe.reject(e.failures[0]):void 0)}bulkGet(e){return this._trans("readonly",n=>this.core.getMany({keys:e,trans:n}).then(r=>r.map(o=>this.hook.reading.fire(o))))}bulkAdd(e,n,r){const o=Array.isArray(n)?n:void 0,s=(r=r||(o?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",i=>{const{auto:a,keyPath:l}=this.schema.primKey;if(l&&o)throw new ce.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(o&&o.length!==e.length)throw new ce.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&a?e.map(ir(l)):e;return this.core.mutate({trans:i,type:"add",keys:o,values:c,wantResults:s}).then(({numFailures:d,results:p,lastResult:h,failures:v})=>{if(d===0)return s?p:h;throw new jn(`${this.name}.bulkAdd(): ${d} of ${u} operations failed`,v)})})}bulkPut(e,n,r){const o=Array.isArray(n)?n:void 0,s=(r=r||(o?void 0:n))?r.allKeys:void 0;return this._trans("readwrite",i=>{const{auto:a,keyPath:l}=this.schema.primKey;if(l&&o)throw new ce.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(o&&o.length!==e.length)throw new ce.InvalidArgument("Arguments objects and keys must have the same length");const u=e.length;let c=l&&a?e.map(ir(l)):e;return this.core.mutate({trans:i,type:"put",keys:o,values:c,wantResults:s}).then(({numFailures:d,results:p,lastResult:h,failures:v})=>{if(d===0)return s?p:h;throw new jn(`${this.name}.bulkPut(): ${d} of ${u} operations failed`,v)})})}bulkDelete(e){const n=e.length;return this._trans("readwrite",r=>this.core.mutate({trans:r,type:"delete",keys:e})).then(({numFailures:r,lastResult:o,failures:s})=>{if(r===0)return o;throw new jn(`${this.name}.bulkDelete(): ${r} of ${n} operations failed`,s)})}}function Nn(t){var e={},n=function(i,a){if(a){for(var l=arguments.length,u=new Array(l-1);--l;)u[l-1]=arguments[l];return e[i].subscribe.apply(null,u),t}if(typeof i=="string")return e[i]};n.addEventType=s;for(var r=1,o=arguments.length;rYt(r(),e()):e,t.justLimit=n&&!r}function br(t,e){if(t.isPrimKey)return e.primaryKey;const n=e.getIndexByKeyPath(t.index);if(!n)throw new ce.Schema("KeyPath "+t.index+" on object store "+e.name+" is not indexed");return n}function ga(t,e,n){const r=br(t,e.schema);return e.openCursor({trans:n,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:r,range:t.range}})}function lr(t,e,n,r){const o=t.replayFilter?Yt(t.filter,t.replayFilter()):t.filter;if(t.or){const s={},i=(a,l,u)=>{if(!o||o(l,u,p=>l.stop(p),p=>l.fail(p))){var c=l.primaryKey,d=""+c;d==="[object ArrayBuffer]"&&(d=""+new Uint8Array(c)),Ye(s,d)||(s[d]=!0,e(a,l,u))}};return Promise.all([t.or._iterate(i,n),wa(ga(t,r,n),t.algorithm,i,!t.keysOnly&&t.valueMapper)])}return wa(ga(t,r,n),Yt(t.algorithm,o),e,!t.keysOnly&&t.valueMapper)}function wa(t,e,n,r){var o=Ie(r?(s,i,a)=>n(r(s),i,a):n);return t.then(s=>{if(s)return s.start(()=>{var i=()=>s.continue();e&&!e(s,a=>i=a,a=>{s.stop(a),i=_e},a=>{s.fail(a),i=_e})||o(s.value,s,a=>i=a),i()})})}function Ue(t,e){try{const n=ba(t),r=ba(e);if(n!==r)return n==="Array"?1:r==="Array"?-1:n==="binary"?1:r==="binary"?-1:n==="string"?1:r==="string"?-1:n==="Date"?1:r!=="Date"?NaN:-1;switch(n){case"number":case"Date":case"string":return t>e?1:tlr(n,e,r,n.table.core))}count(e){return this._read(n=>{const r=this._ctx,o=r.table.core;if(tn(r,!0))return o.count({trans:n,query:{index:br(r,o.schema),range:r.range}}).then(i=>Math.min(i,r.limit));var s=0;return lr(r,()=>(++s,!1),n,o).then(()=>s)}).then(e)}sortBy(e,n){const r=e.split(".").reverse(),o=r[0],s=r.length-1;function i(u,c){return c?i(u[r[c]],c-1):u[o]}var a=this._ctx.dir==="next"?1:-1;function l(u,c){var d=i(u,s),p=i(c,s);return dp?a:0}return this.toArray(function(u){return u.sort(l)}).then(n)}toArray(e){return this._read(n=>{var r=this._ctx;if(r.dir==="next"&&tn(r,!0)&&r.limit>0){const{valueMapper:o}=r,s=br(r,r.table.core.schema);return r.table.core.query({trans:n,limit:r.limit,values:!0,query:{index:s,range:r.range}}).then(({result:i})=>o?i.map(o):i)}{const o=[];return lr(r,s=>o.push(s),n,r.table.core).then(()=>o)}},e)}offset(e){var n=this._ctx;return e<=0||(n.offset+=e,tn(n)?go(n,()=>{var r=e;return(o,s)=>r===0||(r===1?(--r,!1):(s(()=>{o.advance(r),r=0}),!1))}):go(n,()=>{var r=e;return()=>--r<0})),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),go(this._ctx,()=>{var n=e;return function(r,o,s){return--n<=0&&o(s),n>=0}},!0),this}until(e,n){return vo(this._ctx,function(r,o,s){return!e(r.value)||(o(s),n)}),this}first(e){return this.limit(1).toArray(function(n){return n[0]}).then(e)}last(e){return this.reverse().first(e)}filter(e){var n,r;return vo(this._ctx,function(o){return e(o.value)}),n=this._ctx,r=e,n.isMatch=Yt(n.isMatch,r),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,o){e(o.key,o)})}eachUniqueKey(e){return this._ctx.unique="unique",this.eachKey(e)}eachPrimaryKey(e){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(r,o){e(o.primaryKey,o)})}keys(e){var n=this._ctx;n.keysOnly=!n.isMatch;var r=[];return this.each(function(o,s){r.push(s.key)}).then(function(){return r}).then(e)}primaryKeys(e){var n=this._ctx;if(n.dir==="next"&&tn(n,!0)&&n.limit>0)return this._read(o=>{var s=br(n,n.table.core.schema);return n.table.core.query({trans:o,values:!1,limit:n.limit,query:{index:s,range:n.range}})}).then(({result:o})=>o).then(e);n.keysOnly=!n.isMatch;var r=[];return this.each(function(o,s){r.push(s.primaryKey)}).then(function(){return r}).then(e)}uniqueKeys(e){return this._ctx.unique="unique",this.keys(e)}firstKey(e){return this.limit(1).keys(function(n){return n[0]}).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,n=e.index&&e.table.schema.idxByName[e.index];if(!n||!n.multi)return this;var r={};return vo(this._ctx,function(o){var s=o.primaryKey.toString(),i=Ye(r,s);return r[s]=!0,!i}),this}modify(e){var n=this._ctx;return this._write(r=>{var o;if(typeof e=="function")o=e;else{var s=Fe(e),i=s.length;o=function(f){for(var m=!1,y=0;y{const{failures:y,numFailures:g}=m;p+=f-g;for(let _ of Fe(y))d.push(y[_])};return this.clone().primaryKeys().then(f=>{const m=y=>{const g=Math.min(c,f.length-y);return a.getMany({trans:r,keys:f.slice(y,y+g),cache:"immutable"}).then(_=>{const x=[],E=[],I=l?[]:null,C=[];for(let j=0;j0&&a.mutate({trans:r,type:"add",values:x}).then(j=>{for(let R in j.failures)C.splice(parseInt(R),1);v(x.length,j)})).then(()=>(E.length>0||N&&typeof e=="object")&&a.mutate({trans:r,type:"put",keys:I,values:E,criteria:N,changeSpec:typeof e!="function"&&e}).then(j=>v(E.length,j))).then(()=>(C.length>0||N&&e===wo)&&a.mutate({trans:r,type:"delete",keys:C,criteria:N}).then(j=>v(C.length,j))).then(()=>f.length>y+g&&m(y+c))})};return m(0).then(()=>{if(d.length>0)throw new Pr("Error modifying one or more objects",d,p,h);return f.length})})})}delete(){var e=this._ctx,n=e.range;return tn(e)&&(e.isPrimKey&&!Mf||n.type===3)?this._write(r=>{const{primaryKey:o}=e.table.core.schema,s=n;return e.table.core.count({trans:r,query:{index:o,range:s}}).then(i=>e.table.core.mutate({trans:r,type:"deleteRange",range:s}).then(({failures:a,lastResult:l,results:u,numFailures:c})=>{if(c)throw new Pr("Could not delete some values",Object.keys(a).map(d=>a[d]),i-c);return i-c}))}):this.modify(wo)}}const wo=(t,e)=>e.value=null;function Lf(t,e){return te?-1:t===e?0:1}function qe(t,e,n){var r=t instanceof tl?new t.Collection(t):t;return r._ctx.error=n?new n(e):new TypeError(e),r}function nn(t){return new t.Collection(t,()=>el("")).limit(0)}function Uf(t,e,n,r,o,s){for(var i=Math.min(t.length,r.length),a=-1,l=0;l=0?t.substr(0,a)+e[a]+n.substr(a+1):null;o(t[l],u)<0&&(a=l)}return itypeof f=="string"))return qe(t,Ji);function p(f){o=function(y){return y==="next"?g=>g.toUpperCase():g=>g.toLowerCase()}(f),s=function(y){return y==="next"?g=>g.toLowerCase():g=>g.toUpperCase()}(f),i=f==="next"?Lf:Wf;var m=n.map(function(y){return{lower:s(y),upper:o(y)}}).sort(function(y,g){return i(y.lower,g.lower)});a=m.map(function(y){return y.upper}),l=m.map(function(y){return y.lower}),u=f,c=f==="next"?"":r}p("next");var h=new t.Collection(t,()=>St(a[0],l[d-1]+r));h._ondirectionchange=function(f){p(f)};var v=0;return h._addAlgorithm(function(f,m,y){var g=f.key;if(typeof g!="string")return!1;var _=s(g);if(e(_,l,v))return!0;for(var x=null,E=v;E0)&&(x=I)}return m(x!==null?function(){f.continue(x+c)}:y),!1}),h}function St(t,e,n,r){return{type:2,lower:t,upper:e,lowerOpen:n,upperOpen:r}}function el(t){return{type:1,lower:t,upper:t}}class tl{get Collection(){return this._ctx.table.db.Collection}between(e,n,r,o){r=r!==!1,o=o===!0;try{return this._cmp(e,n)>0||this._cmp(e,n)===0&&(r||o)&&(!r||!o)?nn(this):new this.Collection(this,()=>St(e,n,!r,!o))}catch{return qe(this,mt)}}equals(e){return e==null?qe(this,mt):new this.Collection(this,()=>el(e))}above(e){return e==null?qe(this,mt):new this.Collection(this,()=>St(e,void 0,!0))}aboveOrEqual(e){return e==null?qe(this,mt):new this.Collection(this,()=>St(e,void 0,!1))}below(e){return e==null?qe(this,mt):new this.Collection(this,()=>St(void 0,e,!1,!0))}belowOrEqual(e){return e==null?qe(this,mt):new this.Collection(this,()=>St(void 0,e))}startsWith(e){return typeof e!="string"?qe(this,Ji):this.between(e,e+Lt,!0,!0)}startsWithIgnoreCase(e){return e===""?this.startsWith(e):cr(this,(n,r)=>n.indexOf(r[0])===0,[e],Lt)}equalsIgnoreCase(e){return cr(this,(n,r)=>n===r[0],[e],"")}anyOfIgnoreCase(){var e=vt.apply(rn,arguments);return e.length===0?nn(this):cr(this,(n,r)=>r.indexOf(n)!==-1,e,"")}startsWithAnyOfIgnoreCase(){var e=vt.apply(rn,arguments);return e.length===0?nn(this):cr(this,(n,r)=>r.some(o=>n.indexOf(o)===0),e,Lt)}anyOf(){const e=vt.apply(rn,arguments);let n=this._cmp;try{e.sort(n)}catch{return qe(this,mt)}if(e.length===0)return nn(this);const r=new this.Collection(this,()=>St(e[0],e[e.length-1]));r._ondirectionchange=s=>{n=s==="next"?this._ascending:this._descending,e.sort(n)};let o=0;return r._addAlgorithm((s,i,a)=>{const l=s.key;for(;n(l,e[o])>0;)if(++o,o===e.length)return i(a),!1;return n(l,e[o])===0||(i(()=>{s.continue(e[o])}),!1)}),r}notEqual(e){return this.inAnyRange([[Go,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=vt.apply(rn,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch{return qe(this,mt)}const n=e.reduce((r,o)=>r?r.concat([[r[r.length-1][1],o]]):[[Go,o]],null);return n.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(n,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,n){const r=this._cmp,o=this._ascending,s=this._descending,i=this._min,a=this._max;if(e.length===0)return nn(this);if(!e.every(g=>g[0]!==void 0&&g[1]!==void 0&&o(g[0],g[1])<=0))return qe(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",ce.InvalidArgument);const l=!n||n.includeLowers!==!1,u=n&&n.includeUppers===!0;let c,d=o;function p(g,_){return d(g[0],_[0])}try{c=e.reduce(function(g,_){let x=0,E=g.length;for(;x0){I[0]=i(I[0],_[0]),I[1]=a(I[1],_[1]);break}}return x===E&&g.push(_),g},[]),c.sort(p)}catch{return qe(this,mt)}let h=0;const v=u?g=>o(g,c[h][1])>0:g=>o(g,c[h][1])>=0,f=l?g=>s(g,c[h][0])>0:g=>s(g,c[h][0])>=0;let m=v;const y=new this.Collection(this,()=>St(c[0][0],c[c.length-1][1],!l,!u));return y._ondirectionchange=g=>{g==="next"?(m=v,d=o):(m=f,d=s),c.sort(p)},y._addAlgorithm((g,_,x)=>{for(var E=g.key;m(E);)if(++h,h===c.length)return _(x),!1;return!!function(I){return!v(I)&&!f(I)}(E)||(this._cmp(E,c[h][1])===0||this._cmp(E,c[h][0])===0||_(()=>{d===o?g.continue(c[h][0]):g.continue(c[h][1])}),!1)}),y}startsWithAnyOf(){const e=vt.apply(rn,arguments);return e.every(n=>typeof n=="string")?e.length===0?nn(this):this.inAnyRange(e.map(n=>[n,n+Lt])):qe(this,"startsWithAnyOf() only works with strings")}}function ct(t){return Ie(function(e){return Wn(e),t(e.target.error),!1})}function Wn(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const Un="storagemutated",Ot="x-storagemutated-1",Nt=Nn(null,Un);class Kf{_lock(){return Sn(!ae.global),++this._reculock,this._reculock!==1||ae.global||(ae.lockOwnerFor=this),this}_unlock(){if(Sn(!ae.global),--this._reculock==0)for(ae.global||(ae.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{bn(e[1],e[0])}catch{}}return this}_locked(){return this._reculock&&ae.lockOwnerFor!==this}create(e){if(!this.mode)return this;const n=this.db.idbdb,r=this.db._state.dbOpenError;if(Sn(!this.idbtrans),!e&&!n)switch(r&&r.name){case"DatabaseClosedError":throw new ce.DatabaseClosed(r);case"MissingAPIError":throw new ce.MissingAPI(r.message,r);default:throw new ce.OpenFailed(r)}if(!this.active)throw new ce.TransactionInactive;return Sn(this._completion._state===null),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):n.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=Ie(o=>{Wn(o),this._reject(e.error)}),e.onabort=Ie(o=>{Wn(o),this.active&&this._reject(new ce.Abort(e.error)),this.active=!1,this.on("abort").fire(o)}),e.oncomplete=Ie(()=>{this.active=!1,this._resolve(),"mutatedParts"in e&&Nt.storagemutated.fire(e.mutatedParts)}),this}_promise(e,n,r){if(e==="readwrite"&&this.mode!=="readwrite")return Re(new ce.ReadOnly("Transaction is readonly"));if(!this.active)return Re(new ce.TransactionInactive);if(this._locked())return new oe((s,i)=>{this._blockedFuncs.push([()=>{this._promise(e,n,r).then(s,i)},ae])});if(r)return Pt(()=>{var s=new oe((i,a)=>{this._lock();const l=n(i,a,this);l&&l.then&&l.then(i,a)});return s.finally(()=>this._unlock()),s._lib=!0,s});var o=new oe((s,i)=>{var a=n(s,i,this);a&&a.then&&a.then(s,i)});return o._lib=!0,o}_root(){return this.parent?this.parent._root():this}waitFor(e){var n=this._root();const r=oe.resolve(e);if(n._waitingFor)n._waitingFor=n._waitingFor.then(()=>r);else{n._waitingFor=r,n._waitingQueue=[];var o=n.idbtrans.objectStore(n.storeNames[0]);(function i(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(o.get(-1/0).onsuccess=i)})()}var s=n._waitingFor;return new oe((i,a)=>{r.then(l=>n._waitingQueue.push(Ie(i.bind(null,l))),l=>n._waitingQueue.push(Ie(a.bind(null,l)))).finally(()=>{n._waitingFor===s&&(n._waitingFor=null)})})}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new ce.Abort))}table(e){const n=this._memoizedTables||(this._memoizedTables={});if(Ye(n,e))return n[e];const r=this.schema[e];if(!r)throw new ce.NotFound("Table "+e+" not part of transaction");const o=new this.db.Table(e,r,this);return o.core=this.db.core.table(e),n[e]=o,o}}function Zo(t,e,n,r,o,s,i){return{name:t,keyPath:e,unique:n,multi:r,auto:o,compound:s,src:(n&&!i?"&":"")+(r?"*":"")+(o?"++":"")+nl(e)}}function nl(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function rl(t,e,n){return{name:t,primKey:e,indexes:n,mappedClass:null,idxByName:Fi(n,r=>[r.name,r])}}let Kn=t=>{try{return t.only([[]]),Kn=()=>[[]],[[]]}catch{return Kn=()=>Lt,Lt}};function Yo(t){return t==null?()=>{}:typeof t=="string"?function(e){return e.split(".").length===1?r=>r[e]:r=>_t(r,e)}(t):e=>_t(e,t)}function xa(t){return[].slice.call(t)}let $f=0;function Fn(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function Hf(t,e,n){function r(l){if(l.type===3)return null;if(l.type===4)throw new Error("Cannot convert never type to IDBKeyRange");const{lower:u,upper:c,lowerOpen:d,upperOpen:p}=l;return u===void 0?c===void 0?null:e.upperBound(c,!!p):c===void 0?e.lowerBound(u,!!d):e.bound(u,c,!!d,!!p)}const{schema:o,hasGetAll:s}=function(l,u){const c=xa(l.objectStoreNames);return{schema:{name:l.name,tables:c.map(d=>u.objectStore(d)).map(d=>{const{keyPath:p,autoIncrement:h}=d,v=ze(p),f=p==null,m={},y={name:d.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:f,compound:v,keyPath:p,autoIncrement:h,unique:!0,extractKey:Yo(p)},indexes:xa(d.indexNames).map(g=>d.index(g)).map(g=>{const{name:_,unique:x,multiEntry:E,keyPath:I}=g,C={name:_,compound:ze(I),keyPath:I,unique:x,multiEntry:E,extractKey:Yo(I)};return m[Fn(I)]=C,C}),getIndexByKeyPath:g=>m[Fn(g)]};return m[":id"]=y.primaryKey,p!=null&&(m[Fn(p)]=y.primaryKey),y})},hasGetAll:c.length>0&&"getAll"in u.objectStore(c[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(t,n),i=o.tables.map(l=>function(u){const c=u.name;return{name:c,schema:u,mutate:function({trans:d,type:p,keys:h,values:v,range:f}){return new Promise((m,y)=>{m=Ie(m);const g=d.objectStore(c),_=g.keyPath==null,x=p==="put"||p==="add";if(!x&&p!=="delete"&&p!=="deleteRange")throw new Error("Invalid operation type: "+p);const{length:E}=h||v||{length:1};if(h&&v&&h.length!==v.length)throw new Error("Given keys array must have same length as given values array.");if(E===0)return m({numFailures:0,failures:{},results:[],lastResult:void 0});let I;const C=[],N=[];let j=0;const R=D=>{++j,Wn(D)};if(p==="deleteRange"){if(f.type===4)return m({numFailures:j,failures:N,results:[],lastResult:void 0});f.type===3?C.push(I=g.clear()):C.push(I=g.delete(r(f)))}else{const[D,M]=x?_?[v,h]:[v,null]:[h,null];if(x)for(let w=0;w{const M=D.target.result;C.forEach((w,T)=>w.error!=null&&(N[T]=w.error)),m({numFailures:j,failures:N,results:p==="delete"?h:C.map(w=>w.result),lastResult:M})};I.onerror=D=>{R(D),W(D)},I.onsuccess=W})},getMany:({trans:d,keys:p})=>new Promise((h,v)=>{h=Ie(h);const f=d.objectStore(c),m=p.length,y=new Array(m);let g,_=0,x=0;const E=C=>{const N=C.target;y[N._pos]=N.result,++x===_&&h(y)},I=ct(v);for(let C=0;Cnew Promise((h,v)=>{h=Ie(h);const f=d.objectStore(c).get(p);f.onsuccess=m=>h(m.target.result),f.onerror=ct(v)}),query:function(d){return p=>new Promise((h,v)=>{h=Ie(h);const{trans:f,values:m,limit:y,query:g}=p,_=y===1/0?void 0:y,{index:x,range:E}=g,I=f.objectStore(c),C=x.isPrimaryKey?I:I.index(x.name),N=r(E);if(y===0)return h({result:[]});if(d){const j=m?C.getAll(N,_):C.getAllKeys(N,_);j.onsuccess=R=>h({result:R.target.result}),j.onerror=ct(v)}else{let j=0;const R=m||!("openKeyCursor"in C)?C.openCursor(N):C.openKeyCursor(N),W=[];R.onsuccess=D=>{const M=R.result;return M?(W.push(m?M.value:M.primaryKey),++j===y?h({result:W}):void M.continue()):h({result:W})},R.onerror=ct(v)}})}(s),openCursor:function({trans:d,values:p,query:h,reverse:v,unique:f}){return new Promise((m,y)=>{m=Ie(m);const{index:g,range:_}=h,x=d.objectStore(c),E=g.isPrimaryKey?x:x.index(g.name),I=v?f?"prevunique":"prev":f?"nextunique":"next",C=p||!("openKeyCursor"in E)?E.openCursor(r(_),I):E.openKeyCursor(r(_),I);C.onerror=ct(y),C.onsuccess=Ie(N=>{const j=C.result;if(!j)return void m(null);j.___id=++$f,j.done=!1;const R=j.continue.bind(j);let W=j.continuePrimaryKey;W&&(W=W.bind(j));const D=j.advance.bind(j),M=()=>{throw new Error("Cursor not stopped")};j.trans=d,j.stop=j.continue=j.continuePrimaryKey=j.advance=()=>{throw new Error("Cursor not started")},j.fail=Ie(y),j.next=function(){let w=1;return this.start(()=>w--?this.continue():this.stop()).then(()=>this)},j.start=w=>{const T=new Promise((A,X)=>{A=Ie(A),C.onerror=ct(X),j.fail=X,j.stop=$=>{j.stop=j.continue=j.continuePrimaryKey=j.advance=M,A($)}}),V=()=>{if(C.result)try{w()}catch(A){j.fail(A)}else j.done=!0,j.start=()=>{throw new Error("Cursor behind last entry")},j.stop()};return C.onsuccess=Ie(A=>{C.onsuccess=V,V()}),j.continue=R,j.continuePrimaryKey=W,j.advance=D,V(),T},m(j)},y)})},count({query:d,trans:p}){const{index:h,range:v}=d;return new Promise((f,m)=>{const y=p.objectStore(c),g=h.isPrimaryKey?y:y.index(h.name),_=r(v),x=_?g.count(_):g.count();x.onsuccess=Ie(E=>f(E.target.result)),x.onerror=ct(m)})}}}(l)),a={};return i.forEach(l=>a[l.name]=l),{stack:"dbcore",transaction:t.transaction.bind(t),table(l){if(!a[l])throw new Error(`Table '${l}' not found`);return a[l]},MIN_KEY:-1/0,MAX_KEY:Kn(e),schema:o}}function Jo({_novip:t},e){const n=e.db,r=function(o,s,{IDBKeyRange:i,indexedDB:a},l){return{dbcore:function(c,d){return d.reduce((p,{create:h})=>({...p,...h(p)}),c)}(Hf(s,i,l),o.dbcore)}}(t._middlewares,n,t._deps,e);t.core=r.dbcore,t.tables.forEach(o=>{const s=o.name;t.core.schema.tables.some(i=>i.name===s)&&(o.core=t.core.table(s),t[s]instanceof t.Table&&(t[s].core=o.core))})}function Tr({_novip:t},e,n,r){n.forEach(o=>{const s=r[o];e.forEach(i=>{const a=As(i,o);(!a||"value"in a&&a.value===void 0)&&(i===t.Transaction.prototype||i instanceof t.Transaction?bt(i,o,{get(){return this.table(o)},set(l){Pi(this,o,{value:l,writable:!0,configurable:!0,enumerable:!0})}}):i[o]=new t.Table(o,s))})})}function Xo({_novip:t},e){e.forEach(n=>{for(let r in n)n[r]instanceof t.Table&&delete n[r]})}function Vf(t,e){return t._cfg.version-e._cfg.version}function qf(t,e,n,r){const o=t._dbSchema,s=t._createTransaction("readwrite",t._storeNames,o);s.create(n),s._completion.catch(r);const i=s._reject.bind(s),a=ae.transless||ae;Pt(()=>{ae.trans=s,ae.transless=a,e===0?(Fe(o).forEach(l=>{bo(n,l,o[l].primKey,o[l].indexes)}),Jo(t,n),oe.follow(()=>t.on.populate.fire(s)).catch(i)):function({_novip:l},u,c,d){const p=[],h=l._versions;let v=l._dbSchema=es(l,l.idbdb,d),f=!1;const m=h.filter(g=>g._cfg.version>=u);function y(){return p.length?oe.resolve(p.shift()(c.idbtrans)).then(y):oe.resolve()}return m.forEach(g=>{p.push(()=>{const _=v,x=g._cfg.dbschema;ts(l,_,d),ts(l,x,d),v=l._dbSchema=x;const E=ol(_,x);E.add.forEach(C=>{bo(d,C[0],C[1].primKey,C[1].indexes)}),E.change.forEach(C=>{if(C.recreate)throw new ce.Upgrade("Not yet support for changing primary key");{const N=d.objectStore(C.name);C.add.forEach(j=>Qo(N,j)),C.change.forEach(j=>{N.deleteIndex(j.name),Qo(N,j)}),C.del.forEach(j=>N.deleteIndex(j))}});const I=g._cfg.contentUpgrade;if(I&&g._cfg.version>u){Jo(l,d),c._memoizedTables={},f=!0;let C=Ri(x);E.del.forEach(W=>{C[W]=_[W]}),Xo(l,[l.Transaction.prototype]),Tr(l,[l.Transaction.prototype],Fe(C),C),c.schema=C;const N=Ns(I);let j;N&&wn();const R=oe.follow(()=>{if(j=I(c),j&&N){var W=Et.bind(null,null);j.then(W,W)}});return j&&typeof j.then=="function"?oe.resolve(j):R.then(()=>j)}}),p.push(_=>{(!f||!Tf)&&function(x,E){[].slice.call(E.db.objectStoreNames).forEach(I=>x[I]==null&&E.db.deleteObjectStore(I))}(g._cfg.dbschema,_),Xo(l,[l.Transaction.prototype]),Tr(l,[l.Transaction.prototype],l._storeNames,l._dbSchema),c.schema=l._dbSchema})}),y().then(()=>{var g,_;_=d,Fe(g=v).forEach(x=>{_.db.objectStoreNames.contains(x)||bo(_,x,g[x].primKey,g[x].indexes)})})}(t,e,s,n).catch(i)})}function ol(t,e){const n={del:[],add:[],change:[]};let r;for(r in t)e[r]||n.del.push(r);for(r in e){const o=t[r],s=e[r];if(o){const i={name:r,def:s,recreate:!1,del:[],add:[],change:[]};if(""+(o.primKey.keyPath||"")!=""+(s.primKey.keyPath||"")||o.primKey.auto!==s.primKey.auto&&!oo)i.recreate=!0,n.change.push(i);else{const a=o.idxByName,l=s.idxByName;let u;for(u in a)l[u]||i.del.push(u);for(u in l){const c=a[u],d=l[u];c?c.src!==d.src&&i.change.push(d):i.add.push(d)}(i.del.length>0||i.add.length>0||i.change.length>0)&&n.change.push(i)}}else n.add.push([r,s])}return n}function bo(t,e,n,r){const o=t.db.createObjectStore(e,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach(s=>Qo(o,s)),o}function Qo(t,e){t.createIndex(e.name,e.keyPath,{unique:e.unique,multiEntry:e.multi})}function es(t,e,n){const r={};return jr(e.objectStoreNames,0).forEach(o=>{const s=n.objectStore(o);let i=s.keyPath;const a=Zo(nl(i),i||"",!1,!1,!!s.autoIncrement,i&&typeof i!="string",!0),l=[];for(let c=0;c{if(e[r]!==null){var o=e[r].split(",").map((i,a)=>{const l=(i=i.trim()).replace(/([&*]|\+\+)/g,""),u=/^\[/.test(l)?l.match(/^\[(.*)\]$/)[1].split("+"):l;return Zo(l,u||null,/\&/.test(i),/\*/.test(i),/\+\+/.test(i),ze(u),a===0)}),s=o.shift();if(s.multi)throw new ce.Schema("Primary key cannot be multi-valued");o.forEach(i=>{if(i.auto)throw new ce.Schema("Only primary key can be marked as autoIncrement (++)");if(!i.keyPath)throw new ce.Schema("Index must have a name and cannot be an empty string")}),n[r]=rl(r,s,o)}})}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?Ke(this._cfg.storesSource,e):e;const r=n._versions,o={};let s={};return r.forEach(i=>{Ke(o,i._cfg.storesSource),s=i._cfg.dbschema={},i._parseStoresSpec(o,s)}),n._dbSchema=s,Xo(n,[n._allTables,n,n.Transaction.prototype]),Tr(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],Fe(s),s),n._storeNames=Fe(s),this}upgrade(e){return this._cfg.contentUpgrade=Ts(this._cfg.contentUpgrade||_e,e),this}}function Ls(t,e){let n=t._dbNamesDB;return n||(n=t._dbNamesDB=new Vt(so,{addons:[],indexedDB:t,IDBKeyRange:e}),n.version(1).stores({dbnames:"name"})),n.table("dbnames")}function Ws(t){return t&&typeof t.databases=="function"}function ns(t){return Pt(function(){return ae.letThrough=!0,t()})}function Zf(){var t;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(e){var n=function(){return indexedDB.databases().finally(e)};t=setInterval(n,100),n()}).finally(function(){return clearInterval(t)}):Promise.resolve()}function Yf(t){const e=t._state,{indexedDB:n}=t._deps;if(e.isBeingOpened||t.idbdb)return e.dbReadyPromise.then(()=>e.dbOpenError?Re(e.dbOpenError):t);ht&&(e.openCanceller._stackHolder=Jt()),e.isBeingOpened=!0,e.dbOpenError=null,e.openComplete=!1;const r=e.openCanceller;function o(){if(e.openCanceller!==r)throw new ce.DatabaseClosed("db.open() was cancelled")}let s=e.dbReadyResolve,i=null,a=!1;return oe.race([r,(typeof navigator>"u"?oe.resolve():Zf()).then(()=>new oe((l,u)=>{if(o(),!n)throw new ce.MissingAPI;const c=t.name,d=e.autoSchema?n.open(c):n.open(c,Math.round(10*t.verno));if(!d)throw new ce.MissingAPI;d.onerror=ct(u),d.onblocked=Ie(t._fireOnBlocked),d.onupgradeneeded=Ie(p=>{if(i=d.transaction,e.autoSchema&&!t._options.allowEmptyDB){d.onerror=Wn,i.abort(),d.result.close();const v=n.deleteDatabase(c);v.onsuccess=v.onerror=Ie(()=>{u(new ce.NoSuchDatabase(`Database ${c} doesnt exist`))})}else{i.onerror=ct(u);var h=p.oldVersion>Math.pow(2,62)?0:p.oldVersion;a=h<1,t._novip.idbdb=d.result,qf(t,h/10,i,u)}},u),d.onsuccess=Ie(()=>{i=null;const p=t._novip.idbdb=d.result,h=jr(p.objectStoreNames);if(h.length>0)try{const f=p.transaction((v=h).length===1?v[0]:v,"readonly");e.autoSchema?function({_novip:m},y,g){m.verno=y.version/10;const _=m._dbSchema=es(0,y,g);m._storeNames=jr(y.objectStoreNames,0),Tr(m,[m._allTables],Fe(_),_)}(t,p,f):(ts(t,t._dbSchema,f),function(m,y){const g=ol(es(0,m.idbdb,y),m._dbSchema);return!(g.add.length||g.change.some(_=>_.add.length||_.change.length))}(t,f)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),Jo(t,f)}catch{}var v;An.push(t),p.onversionchange=Ie(f=>{e.vcFired=!0,t.on("versionchange").fire(f)}),p.onclose=Ie(f=>{t.on("close").fire(f)}),a&&function({indexedDB:f,IDBKeyRange:m},y){!Ws(f)&&y!==so&&Ls(f,m).put({name:y}).catch(_e)}(t._deps,c),l()},u)}))]).then(()=>(o(),e.onReadyBeingFired=[],oe.resolve(ns(()=>t.on.ready.fire(t.vip))).then(function l(){if(e.onReadyBeingFired.length>0){let u=e.onReadyBeingFired.reduce(Ts,_e);return e.onReadyBeingFired=[],oe.resolve(ns(()=>u(t.vip))).then(l)}}))).finally(()=>{e.onReadyBeingFired=null,e.isBeingOpened=!1}).then(()=>t).catch(l=>{e.dbOpenError=l;try{i&&i.abort()}catch{}return r===e.openCanceller&&t._close(),Re(l)}).finally(()=>{e.openComplete=!0,s()})}function rs(t){var e=s=>t.next(s),n=o(e),r=o(s=>t.throw(s));function o(s){return i=>{var a=s(i),l=a.value;return a.done?l:l&&typeof l.then=="function"?l.then(n,r):ze(l)?Promise.all(l).then(n,r):n(l)}}return o(e)()}function Jf(t,e,n){var r=arguments.length;if(r<2)throw new ce.InvalidArgument("Too few arguments");for(var o=new Array(r-1);--r;)o[r-1]=arguments[r];return n=o.pop(),[t,Ti(o),n]}function sl(t,e,n,r,o){return oe.resolve().then(()=>{const s=ae.transless||ae,i=t._createTransaction(e,n,t._dbSchema,r),a={trans:i,transless:s};if(r)i.idbtrans=r.idbtrans;else try{i.create(),t._state.PR1398_maxLoop=3}catch(d){return d.name===Rs.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then(()=>sl(t,e,n,null,o))):Re(d)}const l=Ns(o);let u;l&&wn();const c=oe.follow(()=>{if(u=o.call(i,i),u)if(l){var d=Et.bind(null,null);u.then(d,d)}else typeof u.next=="function"&&typeof u.throw=="function"&&(u=rs(u))},a);return(u&&typeof u.then=="function"?oe.resolve(u).then(d=>i.active?d:Re(new ce.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))):c.then(()=>u)).then(d=>(r&&i._resolve(),i._completion.then(()=>d))).catch(d=>(i._reject(d),Re(d)))})}function ur(t,e,n){const r=ze(t)?t.slice():[t];for(let o=0;o0,y={...p,isVirtual:m,keyTail:d,keyLength:f,extractKey:Yo(c),unique:!m&&p.unique};return v.push(y),y.isPrimaryKey||s.push(y),f>1&&i(f===2?c[0]:c.slice(0,f-1),d+1,p),v.sort((g,_)=>g.keyTail-_.keyTail),y}const a=i(r.primaryKey.keyPath,0,r.primaryKey);o[":id"]=[a];for(const c of r.indexes)i(c.keyPath,0,c);function l(c){const d=c.query.index;return d.isVirtual?{...c,query:{index:d,range:(p=c.query.range,h=d.keyTail,{type:p.type===1?2:p.type,lower:ur(p.lower,p.lowerOpen?t.MAX_KEY:t.MIN_KEY,h),lowerOpen:!0,upper:ur(p.upper,p.upperOpen?t.MIN_KEY:t.MAX_KEY,h),upperOpen:!0})}}:c;var p,h}return{...n,schema:{...r,primaryKey:a,indexes:s,getIndexByKeyPath:function(c){const d=o[Fn(c)];return d&&d[0]}},count:c=>n.count(l(c)),query:c=>n.query(l(c)),openCursor(c){const{keyTail:d,isVirtual:p,keyLength:h}=c.query.index;return p?n.openCursor(l(c)).then(v=>v&&function(f){return Object.create(f,{continue:{value:function(y){y!=null?f.continue(ur(y,c.reverse?t.MAX_KEY:t.MIN_KEY,d)):c.unique?f.continue(f.key.slice(0,h).concat(c.reverse?t.MIN_KEY:t.MAX_KEY,d)):f.continue()}},continuePrimaryKey:{value(y,g){f.continuePrimaryKey(ur(y,t.MAX_KEY,d),g)}},primaryKey:{get:()=>f.primaryKey},key:{get(){const y=f.key;return h===1?y[0]:y.slice(0,h)}},value:{get:()=>f.value}})}(v)):n.openCursor(c)}}}}}};function Us(t,e,n,r){return n=n||{},r=r||"",Fe(t).forEach(o=>{if(Ye(e,o)){var s=t[o],i=e[o];if(typeof s=="object"&&typeof i=="object"&&s&&i){const a=To(s);a!==To(i)?n[r+o]=e[o]:a==="Object"?Us(s,i,n,r+o+"."):s!==i&&(n[r+o]=e[o])}else s!==i&&(n[r+o]=e[o])}else n[r+o]=void 0}),Fe(e).forEach(o=>{Ye(t,o)||(n[r+o]=e[o])}),n}const Qf={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(e){const n=t.table(e),{primaryKey:r}=n.schema;return{...n,mutate(s){const i=ae.trans,{deleting:a,creating:l,updating:u}=i.table(e).hook;switch(s.type){case"add":if(l.fire===_e)break;return i._promise("readwrite",()=>c(s),!0);case"put":if(l.fire===_e&&u.fire===_e)break;return i._promise("readwrite",()=>c(s),!0);case"delete":if(a.fire===_e)break;return i._promise("readwrite",()=>c(s),!0);case"deleteRange":if(a.fire===_e)break;return i._promise("readwrite",()=>function(p){return d(p.trans,p.range,1e4)}(s),!0)}return n.mutate(s);function c(p){const h=ae.trans,v=p.keys||function(f,m){return m.type==="delete"?m.keys:m.keys||m.values.map(f.extractKey)}(r,p);if(!v)throw new Error("Keys missing");return(p=p.type==="add"||p.type==="put"?{...p,keys:v}:{...p}).type!=="delete"&&(p.values=[...p.values]),p.keys&&(p.keys=[...p.keys]),function(f,m,y){return m.type==="add"?Promise.resolve([]):f.getMany({trans:m.trans,keys:y,cache:"immutable"})}(n,p,v).then(f=>{const m=v.map((y,g)=>{const _=f[g],x={onerror:null,onsuccess:null};if(p.type==="delete")a.fire.call(x,y,_,h);else if(p.type==="add"||_===void 0){const E=l.fire.call(x,y,p.values[g],h);y==null&&E!=null&&(y=E,p.keys[g]=y,r.outbound||st(p.values[g],r.keyPath,y))}else{const E=Us(_,p.values[g]),I=u.fire.call(x,E,y,_,h);if(I){const C=p.values[g];Object.keys(I).forEach(N=>{Ye(C,N)?C[N]=I[N]:st(C,N,I[N])})}}return x});return n.mutate(p).then(({failures:y,results:g,numFailures:_,lastResult:x})=>{for(let E=0;E(m.forEach(g=>g.onerror&&g.onerror(y)),Promise.reject(y)))})}function d(p,h,v){return n.query({trans:p,values:!1,query:{index:r,range:h},limit:v}).then(({result:f})=>c({type:"delete",keys:f,trans:p}).then(m=>m.numFailures>0?Promise.reject(m.failures[0]):f.length({table:e=>{const n=t.table(e);return{...n,getMany:r=>{if(!r.cache)return n.getMany(r);const o=al(r.keys,r.trans._cache,r.cache==="clone");return o?oe.resolve(o):n.getMany(r).then(s=>(r.trans._cache={keys:r.keys,values:r.cache==="clone"?Yn(s):s},s))},mutate:r=>(r.type!=="add"&&(r.trans._cache=null),n.mutate(r))}}})};function Ks(t){return!("from"in t)}const yt=function(t,e){if(!this){const n=new yt;return t&&"d"in t&&Ke(n,t),n}Ke(this,arguments.length?{d:1,from:t,to:arguments.length>1?e:t}:{d:0})};function $n(t,e,n){const r=Ue(e,n);if(isNaN(r))return;if(r>0)throw RangeError();if(Ks(t))return Ke(t,{from:e,to:n,d:1});const o=t.l,s=t.r;if(Ue(n,t.from)<0)return o?$n(o,e,n):t.l={from:e,to:n,d:1,l:null,r:null},ka(t);if(Ue(e,t.to)>0)return s?$n(s,e,n):t.r={from:e,to:n,d:1,l:null,r:null},ka(t);Ue(e,t.from)<0&&(t.from=e,t.l=null,t.d=s?s.d+1:1),Ue(n,t.to)>0&&(t.to=n,t.r=null,t.d=t.l?t.l.d+1:1);const i=!t.r;o&&!t.l&&Mr(t,o),s&&i&&Mr(t,s)}function Mr(t,e){Ks(e)||function n(r,{from:o,to:s,l:i,r:a}){$n(r,o,s),i&&n(r,i),a&&n(r,a)}(t,e)}function th(t,e){const n=os(e);let r=n.next();if(r.done)return!1;let o=r.value;const s=os(t);let i=s.next(o.from),a=i.value;for(;!r.done&&!i.done;){if(Ue(a.from,o.to)<=0&&Ue(a.to,o.from)>=0)return!0;Ue(o.from,a.from)<0?o=(r=n.next(a.from)).value:a=(i=s.next(o.from)).value}return!1}function os(t){let e=Ks(t)?null:{s:0,n:t};return{next(n){const r=arguments.length>0;for(;e;)switch(e.s){case 0:if(e.s=1,r)for(;e.n.l&&Ue(n,e.n.from)<0;)e={up:e,n:e.n.l,s:1};else for(;e.n.l;)e={up:e,n:e.n.l,s:1};case 1:if(e.s=2,!r||Ue(n,e.n.to)<=0)return{value:e.n,done:!1};case 2:if(e.n.r){e.s=3,e={up:e,n:e.n.r,s:0};continue}case 3:e=e.up}return{done:!0}}}}function ka(t){var e,n;const r=(((e=t.r)===null||e===void 0?void 0:e.d)||0)-(((n=t.l)===null||n===void 0?void 0:n.d)||0),o=r>1?"r":r<-1?"l":"";if(o){const s=o==="r"?"l":"r",i={...t},a=t[o];t.from=a.from,t.to=a.to,t[o]=a[o],i[o]=a[s],t[s]=i,i.d=Ea(i)}t.d=Ea(t)}function Ea({r:t,l:e}){return(t?e?Math.max(t.d,e.d):t.d:e?e.d:0)+1}yn(yt.prototype,{add(t){return Mr(this,t),this},addKey(t){return $n(this,t,t),this},addKeys(t){return t.forEach(e=>$n(this,e,e)),this},[Mo](){return os(this)}});const nh={stack:"dbcore",level:0,create:t=>{const e=t.schema.name,n=new yt(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const o=t.table(r),{schema:s}=o,{primaryKey:i}=s,{extractKey:a,outbound:l}=i,u={...o,mutate:p=>{const h=p.trans,v=h.mutatedParts||(h.mutatedParts={}),f=I=>{const C=`idb://${e}/${r}/${I}`;return v[C]||(v[C]=new yt)},m=f(""),y=f(":dels"),{type:g}=p;let[_,x]=p.type==="deleteRange"?[p.range]:p.type==="delete"?[p.keys]:p.values.length<50?[[],p.values]:[];const E=p.trans._cache;return o.mutate(p).then(I=>{if(ze(_)){g!=="delete"&&(_=I.results),m.addKeys(_);const C=al(_,E);C||g==="add"||y.addKeys(_),(C||x)&&function(N,j,R,W){function D(M){const w=N(M.name||"");function T(A){return A!=null?M.extractKey(A):null}const V=A=>M.multiEntry&&ze(A)?A.forEach(X=>w.addKey(X)):w.addKey(A);(R||W).forEach((A,X)=>{const $=R&&T(R[X]),ne=W&&T(W[X]);Ue($,ne)!==0&&($!=null&&V($),ne!=null&&V(ne))})}j.indexes.forEach(D)}(f,s,C,x)}else if(_){const C={from:_.lower,to:_.upper};y.add(C),m.add(C)}else m.add(n),y.add(n),s.indexes.forEach(C=>f(C.name).add(n));return I})}},c=({query:{index:p,range:h}})=>{var v,f;return[p,new yt((v=h.lower)!==null&&v!==void 0?v:t.MIN_KEY,(f=h.upper)!==null&&f!==void 0?f:t.MAX_KEY)]},d={get:p=>[i,new yt(p.key)],getMany:p=>[i,new yt().addKeys(p.keys)],count:c,query:c,openCursor:c};return Fe(d).forEach(p=>{u[p]=function(h){const{subscr:v}=ae;if(v){const f=x=>{const E=`idb://${e}/${r}/${x}`;return v[E]||(v[E]=new yt)},m=f(""),y=f(":dels"),[g,_]=d[p](h);if(f(g.name||"").add(_),!g.isPrimaryKey){if(p!=="count"){const x=p==="query"&&l&&h.values&&o.query({...h,values:!1});return o[p].apply(this,arguments).then(E=>{if(p==="query"){if(l&&h.values)return x.then(({result:C})=>(m.addKeys(C),E));const I=h.values?E.result.map(a):E.result;h.values?m.addKeys(I):y.addKeys(I)}else if(p==="openCursor"){const I=E,C=h.values;return I&&Object.create(I,{key:{get:()=>(y.addKey(I.primaryKey),I.key)},primaryKey:{get(){const N=I.primaryKey;return y.addKey(N),N}},value:{get:()=>(C&&m.addKey(I.primaryKey),I.value)}})}return E})}y.add(n)}}return o[p].apply(this,arguments)}}),u}}}};class Vt{constructor(e,n){this._middlewares={},this.verno=0;const r=Vt.dependencies;this._options=n={addons:Vt.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:o}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:_e,dbReadyPromise:null,cancelOpen:_e,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var i;s.dbReadyPromise=new oe(a=>{s.dbReadyResolve=a}),s.openCanceller=new oe((a,l)=>{s.cancelOpen=l}),this._state=s,this.name=e,this.on=Nn(this,"populate","blocked","versionchange","close",{ready:[Ts,_e]}),this.on.ready.subscribe=Ai(this.on.ready.subscribe,a=>(l,u)=>{Vt.vip(()=>{const c=this._state;if(c.openComplete)c.dbOpenError||oe.resolve().then(l),u&&a(l);else if(c.onReadyBeingFired)c.onReadyBeingFired.push(l),u&&a(l);else{a(l);const d=this;u||a(function p(){d.on.ready.unsubscribe(l),d.on.ready.unsubscribe(p)})}})}),this.Collection=(i=this,Cn(zf.prototype,function(a,l){this.db=i;let u=Qi,c=null;if(l)try{u=l()}catch(v){c=v}const d=a._ctx,p=d.table,h=p.hook.reading.fire;this._ctx={table:p,index:d.index,isPrimKey:!d.index||p.schema.primKey.keyPath&&d.index===p.schema.primKey.name,range:u,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:c,or:d.or,valueMapper:h!==zn?h:null}})),this.Table=function(a){return Cn(Bf.prototype,function(l,u,c){this.db=a,this._tx=c,this.name=l,this.schema=u,this.hook=a._allTables[l]?a._allTables[l].hook:Nn(null,{creating:[Sf,_e],reading:[Cf,zn],updating:[Of,_e],deleting:[If,_e]})})}(this),this.Transaction=function(a){return Cn(Kf.prototype,function(l,u,c,d,p){this.db=a,this.mode=l,this.storeNames=u,this.schema=c,this.chromeTransactionDurability=d,this.idbtrans=null,this.on=Nn(this,"complete","error","abort"),this.parent=p||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new oe((h,v)=>{this._resolve=h,this._reject=v}),this._completion.then(()=>{this.active=!1,this.on.complete.fire()},h=>{var v=this.active;return this.active=!1,this.on.error.fire(h),this.parent?this.parent._reject(h):v&&this.idbtrans&&this.idbtrans.abort(),Re(h)})})}(this),this.Version=function(a){return Cn(Gf.prototype,function(l){this.db=a,this._cfg={version:l,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}(this),this.WhereClause=function(a){return Cn(tl.prototype,function(l,u,c){this.db=a,this._ctx={table:l,index:u===":id"?null:u,or:c};const d=a._deps.indexedDB;if(!d)throw new ce.MissingAPI;this._cmp=this._ascending=d.cmp.bind(d),this._descending=(p,h)=>d.cmp(h,p),this._max=(p,h)=>d.cmp(p,h)>0?p:h,this._min=(p,h)=>d.cmp(p,h)<0?p:h,this._IDBKeyRange=a._deps.IDBKeyRange})}(this),this.on("versionchange",a=>{a.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()}),this.on("blocked",a=>{!a.newVersion||a.newVersionnew this.Transaction(a,l,u,this._options.chromeTransactionDurability,c),this._fireOnBlocked=a=>{this.on("blocked").fire(a),An.filter(l=>l.name===this.name&&l!==this&&!l._state.vcFired).map(l=>l.on("versionchange").fire(a))},this.use(Xf),this.use(Qf),this.use(nh),this.use(eh),this.vip=Object.create(this,{_vip:{value:!0}}),o.forEach(a=>a(this))}version(e){if(isNaN(e)||e<.1)throw new ce.Type("Given version is not a positive number");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new ce.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,e);const n=this._versions;var r=n.filter(o=>o._cfg.version===e)[0];return r||(r=new this.Version(e),n.push(r),n.sort(Vf),r.stores({}),this._state.autoSchema=!1,r)}_whenReady(e){return this.idbdb&&(this._state.openComplete||ae.letThrough||this._vip)?e():new oe((n,r)=>{if(this._state.openComplete)return r(new ce.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void r(new ce.DatabaseClosed);this.open().catch(_e)}this._state.dbReadyPromise.then(n,r)}).then(e)}use({stack:e,create:n,level:r,name:o}){o&&this.unuse({stack:e,name:o});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:n,level:r??10,name:o}),s.sort((i,a)=>i.level-a.level),this}unuse({stack:e,name:n,create:r}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter(o=>r?o.create!==r:!!n&&o.name!==n)),this}open(){return Yf(this)}_close(){const e=this._state,n=An.indexOf(this);if(n>=0&&An.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}e.dbReadyPromise=new oe(r=>{e.dbReadyResolve=r}),e.openCanceller=new oe((r,o)=>{e.cancelOpen=o})}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new ce.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,n=this._state;return new oe((r,o)=>{const s=()=>{this.close();var i=this._deps.indexedDB.deleteDatabase(this.name);i.onsuccess=Ie(()=>{(function({indexedDB:a,IDBKeyRange:l},u){!Ws(a)&&u!==so&&Ls(a,l).delete(u).catch(_e)})(this._deps,this.name),r()}),i.onerror=ct(o),i.onblocked=this._fireOnBlocked};if(e)throw new ce.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(s):s()})}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){const e=this._state.dbOpenError;return e&&e.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return Fe(this._allTables).map(e=>this._allTables[e])}transaction(){const e=Jf.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,n,r){let o=ae.trans;o&&o.db===this&&e.indexOf("!")===-1||(o=null);const s=e.indexOf("?")!==-1;let i,a;e=e.replace("!","").replace("?","");try{if(a=n.map(u=>{var c=u instanceof this.Table?u.name:u;if(typeof c!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return c}),e=="r"||e===mo)i=mo;else{if(e!="rw"&&e!=yo)throw new ce.InvalidArgument("Invalid transaction mode: "+e);i=yo}if(o){if(o.mode===mo&&i===yo){if(!s)throw new ce.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");o=null}o&&a.forEach(u=>{if(o&&o.storeNames.indexOf(u)===-1){if(!s)throw new ce.SubTransaction("Table "+u+" not included in parent transaction.");o=null}}),s&&o&&!o.active&&(o=null)}}catch(u){return o?o._promise(null,(c,d)=>{d(u)}):Re(u)}const l=sl.bind(null,this,i,a,o,r);return o?o._promise(i,l,"lock"):ae.trans?bn(ae.transless,()=>this._whenReady(l)):this._whenReady(l)}table(e){if(!Ye(this._allTables,e))throw new ce.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const rh=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class oh{constructor(e){this._subscribe=e}subscribe(e,n,r){return this._subscribe(e&&typeof e!="function"?e:{next:e,error:n,complete:r})}[rh](){return this}}function il(t,e){return Fe(e).forEach(n=>{Mr(t[n]||(t[n]=new yt),e[n])}),t}function sh(t){let e,n=!1;const r=new oh(o=>{const s=Ns(t);let i=!1,a={},l={};const u={get closed(){return i},unsubscribe:()=>{i=!0,Nt.storagemutated.unsubscribe(h)}};o.start&&o.start(u);let c=!1,d=!1;function p(){return Fe(l).some(f=>a[f]&&th(a[f],l[f]))}const h=f=>{il(a,f),p()&&v()},v=()=>{if(c||i)return;a={};const f={},m=function(y){s&&wn();const g=()=>Pt(t,{subscr:y,trans:null}),_=ae.trans?bn(ae.transless,g):g();return s&&_.then(Et,Et),_}(f);d||(Nt(Un,h),d=!0),c=!0,Promise.resolve(m).then(y=>{n=!0,e=y,c=!1,i||(p()?v():(a={},l=f,o.next&&o.next(y)))},y=>{c=!1,n=!1,o.error&&o.error(y),u.unsubscribe()})};return v(),u});return r.hasValue=()=>n,r.getValue=()=>e,r}let ss;try{ss={indexedDB:Se.indexedDB||Se.mozIndexedDB||Se.webkitIndexedDB||Se.msIndexedDB,IDBKeyRange:Se.IDBKeyRange||Se.webkitIDBKeyRange}}catch{ss={indexedDB:null,IDBKeyRange:null}}const zt=Vt;function _r(t){let e=gt;try{gt=!0,Nt.storagemutated.fire(t)}finally{gt=e}}yn(zt,{...mr,delete:t=>new zt(t,{addons:[]}).delete(),exists:t=>new zt(t,{addons:[]}).open().then(e=>(e.close(),!0)).catch("NoSuchDatabaseError",()=>!1),getDatabaseNames(t){try{return function({indexedDB:e,IDBKeyRange:n}){return Ws(e)?Promise.resolve(e.databases()).then(r=>r.map(o=>o.name).filter(o=>o!==so)):Ls(e,n).toCollection().primaryKeys()}(zt.dependencies).then(t)}catch{return Re(new ce.MissingAPI)}},defineClass:()=>function(t){Ke(this,t)},ignoreTransaction:t=>ae.trans?bn(ae.transless,t):t(),vip:ns,async:function(t){return function(){try{var e=rs(t.apply(this,arguments));return e&&typeof e.then=="function"?e:oe.resolve(e)}catch(n){return Re(n)}}},spawn:function(t,e,n){try{var r=rs(t.apply(n,e||[]));return r&&typeof r.then=="function"?r:oe.resolve(r)}catch(o){return Re(o)}},currentTransaction:{get:()=>ae.trans||null},waitFor:function(t,e){const n=oe.resolve(typeof t=="function"?zt.ignoreTransaction(t):t).timeout(e||6e4);return ae.trans?ae.trans.waitFor(n):n},Promise:oe,debug:{get:()=>ht,set:t=>{Bi(t,t==="dexie"?()=>!0:Xi)}},derive:sn,extend:Ke,props:yn,override:Ai,Events:Nn,on:Nt,liveQuery:sh,extendObservabilitySet:il,getByKeyPath:_t,setByKeyPath:st,delByKeyPath:function(t,e){typeof e=="string"?st(t,e,void 0):"length"in e&&[].map.call(e,function(n){st(t,n,void 0)})},shallowClone:Ri,deepClone:Yn,getObjectDiff:Us,cmp:Ue,asap:Ni,minKey:Go,addons:[],connections:An,errnames:Rs,dependencies:ss,semVer:va,version:va.split(".").map(t=>parseInt(t)).reduce((t,e,n)=>t+e/Math.pow(10,2*n))}),zt.maxKey=Kn(zt.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Nt(Un,t=>{if(!gt){let e;oo?(e=document.createEvent("CustomEvent"),e.initCustomEvent(Ot,!0,!0,t)):e=new CustomEvent(Ot,{detail:t}),gt=!0,dispatchEvent(e),gt=!1}}),addEventListener(Ot,({detail:t})=>{gt||_r(t)}));let gt=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(Ot);typeof t.unref=="function"&&t.unref(),Nt(Un,e=>{gt||t.postMessage(e)}),t.onmessage=e=>{e.data&&_r(e.data)}}else if(typeof self<"u"&&typeof navigator<"u"){Nt(Un,e=>{try{gt||(typeof localStorage<"u"&&localStorage.setItem(Ot,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach(n=>n.postMessage({type:Ot,changedParts:e})))}catch{}}),typeof addEventListener<"u"&&addEventListener("storage",e=>{if(e.key===Ot){const n=JSON.parse(e.newValue);n&&_r(n.changedParts)}});const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",function({data:e}){e&&e.type===Ot&&_r(e.changedParts)})}oe.rejectionMapper=function(t,e){if(!t||t instanceof an||t instanceof TypeError||t instanceof SyntaxError||!t.name||!ha[t.name])return t;var n=new ha[t.name](e||t.message,t);return"stack"in t&&bt(n,"stack",{get:function(){return this.inner.stack}}),n},Bi(ht,Xi);var ah=(t=>(t.SAVE="save",t.SAVE_AS="saveAs",t.openSpotlightSearch="openSpotlightSearch",t))(ah||{}),xr=(t=>(t.MOVE_TO_ROOT_FOLDER="moveToRootFolder",t.DELETE="delete",t))(xr||{});const ih="comfyui_workspace_db";class lh extends Vt{constructor(){super(ih);Oe(this,"workflows");Oe(this,"changelogs");Oe(this,"media");Oe(this,"folders");Oe(this,"tags");Oe(this,"userSettings");Oe(this,"models");Oe(this,"cache");Oe(this,"workflowVersions");this.version(1).stores({workflows:"&id, name, parentFolderID",changelogs:"&id, workflowID",media:"&id, workflowID",folders:"&id, name, parentFolderID",tags:"&name",userSettings:"&id",models:"&id, fileName, fileHash",cache:"&id"}).upgrade(n=>{}),this.version(2).stores({workflows:"&id, name, parentFolderID,cloudID",changelogs:"&id, workflowID",media:"&id, workflowID",folders:"&id, name, parentFolderID",tags:"&name",userSettings:"&id",models:"&id, fileName, fileHash",cache:"&id",workflowVersions:"&id, name, workflowID,cloudID"}).upgrade(n=>{})}}const ie=new lh;class Xt{constructor(e){Oe(this,"tableName");this.tableName=e}async saveDiskDB(){const e=await ie[this.tableName].toArray(),n={};e.forEach(r=>{r.id?n[r.id]=r:r.name?n[r.name]=r:console.error("TableBaseModel should have id or name")});try{sf(this.tableName,JSON.stringify(n))}catch(r){console.error("error saving disk db",r)}}async add(e){return e.id||(e.id=Mn()),e.createTime||(e.createTime=Date.now()),await ie[this.tableName].add(e),await this.saveDiskDB(),e}async put(e){return await ie[this.tableName].put(e),await this.saveDiskDB(),e}async bulkPut(e){await ie[this.tableName].bulkPut(e),this.saveDiskDB()}async update(e,n){return await ie[this.tableName].update(e,n),this.saveDiskDB(),await this.get(e)??null}async listAll(){return await ie[this.tableName].toArray()}async filter(e){return await ie[this.tableName].filter(e).toArray()}async batchQuery(e){return await ie[this.tableName].bulkGet(e)}async getRecords(){console.warn("[DEPRECATED] getRecords() call, should only be used for one-time backfill for indexdb",this.tableName);const e=await of(this.tableName);let n;try{n=e!=null?JSON.parse(e):null}catch{}if(n==null){const r=await pf()??"{}";n=JSON.parse(r)[this.tableName]}return n??{}}async get(e){return await ie[this.tableName].get(e)}async delete(e){await ie[this.tableName].delete(e),this.saveDiskDB()}async listByIndex(e,n){return await ie[this.tableName].where(e).equals(n).toArray()}}const ch=80,Lr=class Lr extends Xt{constructor(){super("changelogs")}static async load(){return new Lr}async listByWorkflowID(e){return await ie.changelogs.where("workflowID").equals(e).reverse().sortBy("createTime")}async getLastestByWorkflowID(e){return(await this.listByWorkflowID(e))[0]}async create(e){const n=await this.getLastestByWorkflowID(e.workflowID);if(n!=null&&n.json===e.json)return null;const r={id:Mn(),json:e.json,workflowID:e.workflowID,createTime:Date.now(),isAutoSave:e.isAutoSave};return await this.deleteLogsExceedLimit(e.workflowID),await ie.changelogs.add(r),r}async deleteLogsExceedLimit(e){var o;const n=await ie.changelogs.where("workflowID").equals(e).reverse().sortBy("createTime"),r=((o=Y==null?void 0:Y.settings)==null?void 0:o.maximumChangelogNumber)??ch;if(n.length>r){const s=n.slice(r);await ie.changelogs.bulkDelete(s.map(i=>i.id))}}};Oe(Lr,"TABLE_NAME","changelogs");let as=Lr;const qp="CWM_WORKFLOWS_SORT_TYPE";var ut=(t=>(t.RECENTLY_OPENED="recentlyOpened",t.RECENTLY_MODIFIED="newest",t.OLDEST_MODIFIED="oldest",t.AZ="name A-Z",t.ZA="name Z-A",t))(ut||{});const Gp=[{title:"Import Workflows",type:"file"},{title:"Import Folder",type:"folder"}];function uh(t){return t=t.replace(/[\\/:*?"<>|]/g,"_"),t.trim()}function ll(t,e=!0,n=!1,r="-"){const o=new Date(t),s=String(o.getDate()).padStart(2,"0"),i=String(o.getMonth()+1).padStart(2,"0"),a=o.getFullYear(),l=String(o.getHours()).padStart(2,"0"),u=String(o.getMinutes()).padStart(2,"0"),c=String(o.getSeconds()).padStart(2,"0"),d=`${i}${r}${s}${r}${a}`;return e?d+` ${l}:${u}`:n?d+`:${c}`:d}const kr=(t,e=ut.RECENTLY_MODIFIED)=>{const n=[...t];switch(e){case ut.AZ:n.sort((r,o)=>r.name.localeCompare(o.name));break;case ut.ZA:n.sort((r,o)=>o.name.localeCompare(r.name));break;case ut.RECENTLY_MODIFIED:n.sort((r,o)=>o.updateTime-r.updateTime);break;case ut.OLDEST_MODIFIED:n.sort((r,o)=>r.updateTime-o.updateTime);break;case ut.RECENTLY_OPENED:n.sort((r,o)=>(o.lastOpenedTime??0)-(r.lastOpenedTime??0));break}return n};function dh(t){const e=t.nodes,n=new Array,r=new Map,o=new Array;for(let s=0;s{var n;const e=(n=Y==null?void 0:Y.settings)==null?void 0:n.shortcuts;if(!e)return!1;for(const r in e){const s=e[r].split("+"),i={Control:t.ctrlKey,Shift:t.shiftKey,Alt:t.altKey,Command:t.metaKey,[t.key.toUpperCase()]:!0};for(const a in i)i[a]||delete i[a];if(s.length===Object.keys(i).length&&s.every(a=>i[a]))return r}};function Jp(t){const e=["png","jpg","jpeg","gif","bmp","webp"],n=t.split(".").pop();return n!=null&&e.includes(n)}function fh(t){return`/workspace/view_media?filename=${t}`}function Ca(){const e=window.location.hash.slice(1).split("/").find(n=>n.includes("workspaceId@"));return e?e.split("@")[1]:null}function cl(t){const e=window.location.hash.slice(1).split("/"),n=e.findIndex(o=>o.includes("workspaceId@")),r=`workspaceId@${t}`;return n>=0?e[n]=r:e.push(r),`${e.join("/")}`}const hh=t=>{const e=cl(t);window.open(`${window.location.origin}/#${e}`)},ph="comfyspace_tracking",We="workspace_info",mh=9999999,_o="upgrade_to_2way_sync",$s=28,Xp="SHORTCUT_TRIGGER_EVENT";function Er(...t){const e=t.filter(n=>n!=="").join("/");return Ft(e)}function Ft(t){let n=t.split("/").filter(r=>r!=="").join("/").replace(/\\/g,"/");return n=n.replace(/^\/+/,""),n}function xo(t){return Er(t.parentFolderID??"",t.name+".json")}var Dt;(t=>{async function e({parentFolderID:a,name:l}){return Ft(`${a??""}/${l}`)}t.genFolderRelPath=e;async function n(a){await Ee("/workspace/folder/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:Ft(a.id)})})}t.createFolder=n;async function r(a,l){const c=await(await Ee("/workspace/folder/move",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder:a,newParentPath:l})})).json();c.error&&alert("Failed to move folder: "+c.error)}t.moveFolder=r;async function o(a){try{return await(await Ee("/workspace/folder/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})})).text()}catch(l){console.error("Error deleting file:",l)}}t.deleteFolder=o;async function s(a){try{const u=await(await Ee("/workspace/file/count_files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})})).json();return u.error&&console.error("Error counting files:",u.error),u.count}catch(l){console.error("Error renaming file:",l)}return null}t.genFilesCountInFolder=s;async function i(a,l){try{const c=await(await Ee("/workspace/folder/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({absPath:a,newName:l})})).json();c.error&&alert("Failed to rename folder: "+c.error)}catch(u){console.error("Error renaming file:",u)}}t.renameFolder=i})(Dt||(Dt={}));async function dr(t){const e=await Hs(t);if(e==null)return;const n=await vh(t);await(H==null?void 0:H.updateMetaInfo(t.id,{filePath:n??void 0}));const r=t.json,o=JSON.parse(r);o.extra[We]={id:t.id,name:t.name},delete o.extra[ph],await af(e,JSON.stringify(o))}async function ko(t){if(t.name==null)return;const e=await Hs(t);e!=null&&lf(e)}async function Hs(t){let e=uh(t.name)+".json",n=t.parentFolderID;for(;n!=null;){const r=await(Le==null?void 0:Le.get(n));if(r==null)break;e=`${r.name}/${e}`,n=r.parentFolderID??void 0}return e??null}async function yh(t){let e="",n=t;for(;n!=null;){const r=await(Le==null?void 0:Le.get(n));if(r==null)break;e=`${r.name}/${e}`,n=r.parentFolderID??null}return e}async function vh(t){const e=await Hs(t);let n=await(Y==null?void 0:Y.getSetting("myWorkflowsDir"));return n?(n.endsWith("/")||(n=n+"/"),n+e):(console.error("myWorkflowsDir is not set"),null)}async function Qp(t){if(await(Y==null?void 0:Y.getSetting("twoWaySync")))return await Dt.genFilesCountInFolder(t)??0;const n=await(H==null?void 0:H.listAll())??[],r=await(Le==null?void 0:Le.listAll())??[],o=[t];let s=0;for(;o.length>0;){const i=o.shift();if(i){for(const l of n)l.parentFolderID===i&&s++;const a=r.filter(l=>l.parentFolderID===i).map(l=>l.id);a.length&&o.push(...a)}}return s}const ul={last_node_id:9,last_link_id:9,nodes:[{id:7,type:"CLIPTextEncode",pos:[413,389],size:{0:425.27801513671875,1:180.6060791015625},flags:{},order:3,mode:0,inputs:[{name:"clip",type:"CLIP",link:5}],outputs:[{name:"CONDITIONING",type:"CONDITIONING",links:[6],slot_index:0}],properties:{},widgets_values:["text, watermark"]},{id:6,type:"CLIPTextEncode",pos:[415,186],size:{0:422.84503173828125,1:164.31304931640625},flags:{},order:2,mode:0,inputs:[{name:"clip",type:"CLIP",link:3}],outputs:[{name:"CONDITIONING",type:"CONDITIONING",links:[4],slot_index:0}],properties:{},widgets_values:["beautiful scenery nature glass bottle landscape, , purple galaxy bottle,"]},{id:5,type:"EmptyLatentImage",pos:[473,609],size:{0:315,1:106},flags:{},order:1,mode:0,outputs:[{name:"LATENT",type:"LATENT",links:[2],slot_index:0}],properties:{},widgets_values:[512,512,1]},{id:3,type:"KSampler",pos:[863,186],size:{0:315,1:262},flags:{},order:4,mode:0,inputs:[{name:"model",type:"MODEL",link:1},{name:"positive",type:"CONDITIONING",link:4},{name:"negative",type:"CONDITIONING",link:6},{name:"latent_image",type:"LATENT",link:2}],outputs:[{name:"LATENT",type:"LATENT",links:[7],slot_index:0}],properties:{},widgets_values:[0x8e7ff42ed37e,!0,20,8,"euler","normal",1]},{id:8,type:"VAEDecode",pos:[1209,188],size:{0:210,1:46},flags:{},order:5,mode:0,inputs:[{name:"samples",type:"LATENT",link:7},{name:"vae",type:"VAE",link:8}],outputs:[{name:"IMAGE",type:"IMAGE",links:[9],slot_index:0}],properties:{}},{id:9,type:"SaveImage",pos:[1451,189],size:{0:210,1:26},flags:{},order:6,mode:0,inputs:[{name:"images",type:"IMAGE",link:9}],properties:{}},{id:4,type:"CheckpointLoaderSimple",pos:[26,474],size:{0:315,1:98},flags:{},order:0,mode:0,outputs:[{name:"MODEL",type:"MODEL",links:[1],slot_index:0},{name:"CLIP",type:"CLIP",links:[3,5],slot_index:1},{name:"VAE",type:"VAE",links:[8],slot_index:2}],properties:{},widgets_values:["v1-5-pruned-emaonly.ckpt"]}],links:[[1,4,0,3,0,"MODEL"],[2,5,0,3,3,"LATENT"],[3,4,1,6,0,"CLIP"],[4,6,0,3,1,"CONDITIONING"],[5,4,1,7,0,"CLIP"],[6,7,0,3,2,"CONDITIONING"],[7,3,0,8,0,"LATENT"],[8,4,2,8,1,"VAE"],[9,8,0,9,0,"IMAGE"]],groups:[],config:{},extra:{},version:.4};var Qe;(t=>{async function e(l,u){try{const d=await(await Ee("/workspace/file/move",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:xo(l),newParentPath:u})})).json();return d.error?(alert("Error moving file: "+d.error),!1):!0}catch(c){console.error("Error deleting file:",c)}}t.moveWorkflow=e;async function n(l,u){try{const d=await(await Ee("/workspace/file/gen_unique_name",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:Er(u??"",l)})})).json();return d.error?(console.error("Error getting unique name:",d.error),null):d.uniqueName}catch(c){console.error("Error deleting file:",c)}return null}t.genFileUniqueName=n;async function r({parentFolderID:l,name:u},c){try{const p=await(await Ee("/workspace/file/rename",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:Er(l??"",u+".json"),newName:c})})).json();return p.error?(alert("Error rename file: "+p.error),!1):!0}catch(d){console.error("Error deleting file:",d)}}t.renameWorkflow=r;async function o(l){const u=l.json,c=JSON.parse(u);c.extra[We]==null&&(c.extra[We]={}),c.extra[We].id=l.id;const p=await(await Ee("/workspace/file/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:xo(l),json:JSON.stringify(c)})})).json();if(p.error)throw console.error("Error saving file:",p.error),alert(`"Error saving file: ${p.error} - - 👉Please try "Save as" from "Files" dropdown menu - `),new Error(p.error);return p}t.saveWorkflow=o;async function s(l){try{return await(await Ee("/workspace/delete_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_path:xo(l),deleteEmptyFolder:!1})})).text()}catch(u){alert("Error deleting workflow .json file: "+u),console.error("Error deleting file:",u)}}t.deleteWorkflow=s;async function i({parentFolderID:l,name:u,json:c,id:d}){var v;let p=JSON.parse(c);p.extra==null&&(p.extra={}),p.extra[We]==null&&(p.extra[We]={}),p.extra[We].id=d;const h={parentFolderPath:Ft(l??""),name:u,json:JSON.stringify(p)};try{const m=await(await Ee("/workspace/create_workflow_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)})).json();return m.name&&await((v=ie.workflows)==null?void 0:v.update(d,{name:m.name})),m}catch(f){return console.error(`Error creating file <${d}> at "${l}"`,f),alert(`Error creating file <${d}> at "${l}"`),{}}}t.createWorkflow=i;async function a({parentFolderID:l,name:u,id:c}){const d=Er(l??"",u+".json");try{const h=await(await Ee("/workspace/get_workflow_file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:d,id:c})})).json();return h.error&&(console.error(`Error getting file <${c}> at "${d}"`,h.error),alert({message:`Error getting file <${c}> at "${d}"`,level:"error"})),h}catch(p){return console.error(`Erro finding file <${c}> at "${d}"`,p),{}}}t.getFile=a})(Qe||(Qe={}));async function Vs(t,e=!1,n=!1){try{return await(await Ee("/workspace/file/scan_my_workflows_folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:Ft(t),recursive:e,metaInfoOnly:n})})).json()}catch(r){return console.error("Error scan local new files:",r),[]}}async function gh(t,e){const n=Ft(t??""),o=(await Vs(n)).map(async a=>{var c;const l=a.name,u=[n,l].join("/");return wh(a)?{id:Ft(u),name:a.name,parentFolderID:n,type:"folder",createTime:Date.now(),updateTime:Date.now()}:{...await((c=ie.workflows)==null?void 0:c.get(a.id))??{createTime:Date.now(),updateTime:Date.now()},id:a.id,json:a.json??"{}",name:l.replace(/\.json$/,""),parentFolderID:n,createTime:a.createTime}}),s=await Promise.all(o);ie.workflows.bulkPut(s.filter(a=>!Oh(a)));const i=s.filter(a=>a!=null);return kr(i,e??ut.RECENTLY_MODIFIED)}function wh(t){return"type"in t&&t.type==="folder"}const Wr=class Wr extends Xt{constructor(){super("workflows");Oe(this,"_curWorkflow",null)}get curWorkflow(){return this._curWorkflow}static async load(){return new Wr}updateCurWorkflowID(n){if(n==null){this._curWorkflow=null;return}this.get(n).then(r=>{this._curWorkflow=r??null})}updateCurWorkflow(n){this._curWorkflow=n}async latestVersionCheck(){if(this._curWorkflow){const n=await ie.workflows.get(this._curWorkflow.id);return n?(n==null?void 0:n.updateTime)===this._curWorkflow.updateTime:!0}return!0}async listByIndex(n,r){const o=await super.listByIndex(n,r);return await(Y==null?void 0:Y.getSetting("twoWaySync"))?(await Promise.all(o.map(async a=>await this.get(a.id)))).filter(a=>a!=null):o}async generateUniqueName(n,r){if(await(Y==null?void 0:Y.getSetting("twoWaySync"))){const l=await Qe.genFileUniqueName((n??"Untitled Flow")+".json",r??"");return(l==null?void 0:l.replace(/\.json$/,""))??"Untitled Flow"}let s=n??"Untitled Flow";const a=(await this.listAll()??[]).filter(l=>l.parentFolderID==r).map(l=>l.name);if(a.includes(s)){let l=2,u=!0;for(;u;)a.includes(`${s} ${l}`)?l++:(s=`${s} ${l}`,u=!1)}return s}async createFlow(n){const{name:r}=n,o=await this.generateUniqueName(r,n.parentFolderID??void 0),s=Date.now(),i={...n,id:n.id??Mn(),json:n.json??JSON.stringify(ul),name:o,updateTime:n.updateTime??s,createTime:n.createTime??s};return await ie.workflows.add(i),this.saveDiskDB(),await(Y==null?void 0:Y.getSetting("twoWaySync"))?(await Qe.createWorkflow(i),await this.get(i.id)):(dr(i),i)}async update(n,r){throw new Error("Method not allowed.")}async updateTopFields(n,r){return this._update(n,r)}async updateMetaInfo(n,r){return this._update(n,r)}async _update(n,r){await ie.workflows.update(n,r);const o=await ie.workflows.get(n)??null;return this._curWorkflow&&this._curWorkflow.id===n&&(this._curWorkflow=o),this.saveDiskDB(),o}async updateFolder(n,r){var a;const o=await(Y==null?void 0:Y.getSetting("twoWaySync")),s=await this.get(n),i=await this.updateMetaInfo(n,r);!i||!s||(o?await Qe.moveWorkflow(s,r.parentFolderID):(await dr(i),await ko(s),(i==null?void 0:i.parentFolderID)!=null&&await((a=ie.folders)==null?void 0:a.update(i.parentFolderID,{updateTime:Date.now()}))))}async genLastManualSavedJson(n){const r=await(Ge==null?void 0:Ge.getLastestByWorkflowID(n));return r==null?void 0:r.json}async updateName(n,r){const o=await this.get(n);return await(Y==null?void 0:Y.getSetting("twoWaySync"))&&o&&await Qe.renameWorkflow(o,r.name+".json"),await this.updateMetaInfo(n,r)}async updateFlow(n,r){const o=await this.get(n,!1);if(o==null)return;const s=JSON.stringify(o.json),i=JSON.stringify(r.json);if(s===i)return;const a=await this._update(n,{updateTime:Date.now(),json:r.json});await(Y==null?void 0:Y.getSetting("twoWaySync"))?a&&await Qe.saveWorkflow(a):a&&await dr(a)}async batchCreateFlows(n=[],r=!1,o){var i,a;const s=[];for(const l of n){const u=l.name&&r?l.name:await this.generateUniqueName(l.name,o),c=Mn(),d=Date.now(),p={id:c,name:u,json:l.json,parentFolderID:o,updateTime:d,createTime:d,tags:[]};if(s.push(p),await(Y==null?void 0:Y.getSetting("twoWaySync")))try{const v=JSON.parse(l.json),f=(a=(i=v==null?void 0:v.extra)==null?void 0:i[We])==null?void 0:a.id;f&&(await this.get(f)||(p.id=f)),Qe.createWorkflow(p)}catch(v){console.error("batchCreateFlows error",v)}else await dr(p)}try{await ie.workflows.bulkAdd(s),this.saveDiskDB()}catch(l){console.error("batchCreateFlows error",l)}}async deleteFlow(n){const r=await this.get(n);r&&(await(Y==null?void 0:Y.getSetting("twoWaySync"))?await Qe.deleteWorkflow(r):ko({...r})),await ie.workflows.delete(n),this.saveDiskDB()}async batchDeleteFlow(n){const r=await ie.workflows.bulkGet(n);for(const o of r){if(!o)return;await(Y==null?void 0:Y.getSetting("twoWaySync"))?await Qe.deleteWorkflow(o):ko({...o})}await ie.workflows.bulkDelete(n),this.saveDiskDB()}async listFolderContent(n,r){if(await(Y==null?void 0:Y.getSetting("twoWaySync"))){const l=await gh(n??null);return kr(l,r??ut.RECENTLY_MODIFIED)}const s=await this.listAll().then(l=>l.filter(u=>u.parentFolderID==n))??[],i=await(Le==null?void 0:Le.listAll().then(l=>l.filter(u=>u.parentFolderID==n)))??[],a=[...s,...i];return kr(a,r??ut.RECENTLY_MODIFIED)}async get(n,r=!0){const o=await(Y==null?void 0:Y.getSetting("twoWaySync")),s=await ie.workflows.get(n);if(!o||!r)return s;if(s==null)return;const i=await Qe.getFile({parentFolderID:s.parentFolderID??null,name:s.name,id:s.id});if(i.json)return{...s,json:JSON.stringify(i.json)}}async listAll(n){const r=await(Y==null?void 0:Y.getSetting("twoWaySync"));let o;if(r){const i=(await Vs("",!0)).filter(a=>(a==null?void 0:a.type)==="workflow").map(async a=>{const l=await ie.workflows.get(a.id);return a.updateTime=(l==null?void 0:l.updateTime)??Date.now(),l!=null&&l.lastOpenedTime&&(a.lastOpenedTime=l==null?void 0:l.lastOpenedTime),a});o=await Promise.all(i)}else o=await ie.workflows.toArray();return n?kr(o,n):o}async updateLastOpenedTime(n){await ie.workflows.update(n,{lastOpenedTime:Date.now()})}};Oe(Wr,"TABLE_NAME","workflows");let is=Wr;const Ur=class Ur extends Xt{constructor(){super("folders")}static async load(){return new Ur}async create(e){const n=await this.generateUniqueName(e.name,e.parentFolderID),r=await(Y==null?void 0:Y.getSetting("twoWaySync")),o=await Dt.genFolderRelPath({name:n,parentFolderID:e.parentFolderID??""}),s={id:r?o:Mn(),name:n,parentFolderID:e.parentFolderID??null,updateTime:Date.now(),createTime:Date.now(),type:"folder"};return r?await Dt.createFolder(s):(await ie.folders.add(s),this.saveDiskDB()),s}async update(e,n){if(await(Y==null?void 0:Y.getSetting("twoWaySync")))return"parentFolderID"in n&&await Dt.moveFolder(e,n.parentFolderID??""),"name"in n&&await Dt.renameFolder(e,n.name??""),null;const o=await this.get(e);if(o==null)return null;"name"in n&&n.name!=o.name;const s="parentFolderID"in n&&n.parentFolderID!=o.parentFolderID,i={...o,...n};return n.name!=null&&(i.updateTime=Date.now()),s&&(n.name=await this.generateUniqueName(i.name,i.parentFolderID??void 0)),await ie.folders.update(e,n),this.saveDiskDB(),i}async deleteFolder(e,n=xr.DELETE){if(await(Y==null?void 0:Y.getSetting("twoWaySync"))){await Vs(e,!0,!0).then(a=>{a.forEach(l=>{l.type==="workflow"&&(H==null||H.deleteFlow(l.id))})}),await Dt.deleteFolder(e);return}const o=await(H==null?void 0:H.listAll())??[],s=await this.listAll(),i=[e];for(;i.length>0;){const a=i.shift();if(a){for(const u of o)if(u.parentFolderID===a)switch(n){case xr.DELETE:await(H==null?void 0:H.deleteFlow(u.id));break;case xr.MOVE_TO_ROOT_FOLDER:await(H==null?void 0:H.updateFolder(u.id,{parentFolderID:void 0}));break}await ie.folders.delete(a);const l=s.filter(u=>u.parentFolderID===a).map(u=>u.id);l.length&&i.push(...l)}}this.saveDiskDB()}async generateUniqueName(e,n){if(await(Y==null?void 0:Y.getSetting("twoWaySync")))return await Qe.genFileUniqueName(e??"New folder",n??"")??"New folder";let o=e??"New folder";const s=await this.listAll().then(i=>i.filter(a=>a.parentFolderID==n).map(a=>a.name));if(s.includes(o)){let i=2,a=!0;for(;a;)s.includes(`${o} ${i}`)?i++:(o=`${o} ${i}`,a=!1)}return o}};Oe(Ur,"TABLE_NAME","folders");let ls=Ur;function bh(t){return new Promise((e,n)=>{const r=new FileReader;r.onload=o=>{const s=new Uint8Array(o.target.result),i=new DataView(s.buffer);i.getUint32(0)!==2303741511&&(console.error("Not a valid PNG file"),n());let a=8;const l={};for(;aString.fromCharCode(f)).join("");l[p]=v}a+=12+u}e(l)},r.readAsArrayBuffer(t)})}function _h(t){const e=new Uint16Array(t.slice(0,2))[0]===18761;function n(i,a,l){const u=t.slice(i,i+l);if(l===2)return new DataView(u.buffer,u.byteOffset,u.byteLength).getUint16(0,a);if(l===4)return new DataView(u.buffer,u.byteOffset,u.byteLength).getUint32(0,a)}const r=n(4,e,4);function o(i){const a=n(i,e,2),l={};for(let u=0;u{const n=new FileReader;n.onload=r=>{var l;const o=new Uint8Array((l=r==null?void 0:r.target)==null?void 0:l.result),s=new DataView(o.buffer);if(s.getUint32(0)!==1380533830||s.getUint32(8)!==1464156752){console.error("Not a valid WEBP file"),e();return}let i=12;const a={};for(;i{const n=new FileReader;n.onload=r=>{const o=new Uint8Array(r.target.result),s=new DataView(o.buffer),i=new TextDecoder;if(s.getUint32(0)==440786851){let a=12;for(;a>8*(4-c)&~(1<<7*c),p=i.decode(o.slice(a+2+c,a+2+c+d)),h=JSON.parse(p);e(h);return}}a+=1}}else if(s.getUint32(4)==1718909296&&s.getUint32(8)==1769172845){let a=o.length-4;for(;a>16;){if(s.getUint32(a)==1684108385&&s.getUint32(a-8)==2841865588){s.getUint32(a+4),s.getUint32(a+8);const l=s.getUint32(a-4)-4*4,u=i.decode(o.slice(a+12,a+12+l)),c=JSON.parse(u);e(c);return}a-=1}}else{console.error("Unknown magic: "+s.getUint32(0)),e();return}},n.readAsArrayBuffer(t)})}function Ch(t){const e=t.split(".").pop();return fetch(t).then(n=>{if(!n.ok)throw new Error("Network response was not ok");return n.blob()}).then(async n=>{const r=t.split("/").pop()??"",o=new File([n],r);if(kh(t))return Eh(o);if(e==="webp")return xh(o);const s=await bh(o),i=JSON.parse(s==null?void 0:s.prompt),a=JSON.parse(s==null?void 0:s.workflow);return{prompt:i,workflow:a}})}class dl extends Xt{constructor(){super("media")}async listByWorkflowID(e){return await ie.media.where("workflowID").equals(e).reverse().sortBy("createTime")}async create(e){const n=e.localPath.split(".").pop();if(n==null)return null;const r=await Ch(`/workspace/view_media?filename=${e.localPath}`).catch(s=>(console.error("get meta error:",s),{prompt:""})),o={id:e.localPath,localPath:e.localPath,workflowID:e.workflowID,createTime:Date.now(),workflowJSON:JSON.stringify(r==null?void 0:r.prompt),format:n};return await(H==null?void 0:H.updateMetaInfo(e.workflowID,{latestImage:o.localPath})),ie.media.put(o),this.saveDiskDB(),o}async delete(e){var n,r;super.delete(e),((n=H==null?void 0:H.curWorkflow)==null?void 0:n.coverMediaPath)===e&&(H==null||H.updateMetaInfo(H.curWorkflow.id,{coverMediaPath:void 0})),((r=H==null?void 0:H.curWorkflow)==null?void 0:r.latestImage)===e&&(H==null||H.updateMetaInfo(H.curWorkflow.id,{latestImage:void 0}))}}Oe(dl,"TABLE_NAME","media");const em=["Checkpoint","TextualInversion","Hypernetwork","LORA","Controlnet","Upscaler","VAE"],Sh={Checkpoint:"checkpoints",TextualInversion:"embeddings",Hypernetwork:"hypernetworks",LORA:"loras",Controlnet:"controlnet",Upscaler:"upscale_models",VAE:"vae"};function tm(t){return t.modelVersions!==void 0}function Ih(t){var e;return((e=t.files)==null?void 0:e[0])!==void 0}function nm(t,e){var r,o,s,i,a,l;if(!t)return;let n;return Ih(t)?n={id:t.id,SHA256:(o=(r=t.files)==null?void 0:r[0].hashes)==null?void 0:o.SHA256,name:(s=t.files)==null?void 0:s[0].name,sizeKB:(a=(i=t.files)==null?void 0:i[0])==null?void 0:a.sizeKB}:n={id:t.id,SHA256:(l=t.hashes)==null?void 0:l[2],name:`${e} ${t.name}`},n}const Kr=class Kr extends Xt{constructor(){super("userSettings");Oe(this,"defaultSettings");Oe(this,"DEFAULT_USER","guest");Oe(this,"_autoSave",!1);Oe(this,"_settings");this.defaultSettings={id:this.DEFAULT_USER,topBarStyle:{top:0,left:0},myWorkflowsDir:"",shortcuts:{save:"Shift+S",saveAs:"Control+Alt+S",openSpotlightSearch:"Control+P"},defaultFolders:Sh,autoSave:!1,autoSaveDuration:3,twoWaySync:!1,foldersOnTop:!1,cloudHost:"https://www.nodecafe.org",overwriteCurWorkflowWhenDroppingFileToCanvas:!1,maximumChangelogNumber:80,hideCoverImage:!1,disableUnsavedWarning:!1}}get settings(){return this._settings}get autoSave(){return this._autoSave}async getSetting(n){const r=await this.get(this.DEFAULT_USER);return n==="shortcuts"&&(r!=null&&r.shortcuts)?{...this.defaultSettings.shortcuts,...r.shortcuts}:(r==null?void 0:r[n])??this.defaultSettings[n]}async upsert(n){const o={...await this.get(this.DEFAULT_USER)??this.defaultSettings,...n};await this.put(o),this._settings={...this.defaultSettings,...o}}static async load(){const n=new Kr,r=await cf();return n.defaultSettings.myWorkflowsDir=r.path,await n.get(n.DEFAULT_USER).then(o=>{n._autoSave=(o==null?void 0:o.autoSave)??!1,n._settings={...n.defaultSettings,...o}}),n.defaultSettings.cloudHost.includes("comfyspace.art")&&await n.upsert({cloudHost:n.defaultSettings.cloudHost}),n}};Oe(Kr,"TABLE_NAME","userSettings");let cs=Kr;const $r=class $r extends Xt{constructor(){super("tags")}static async load(){return new $r}};Oe($r,"TABLE_NAME","tags");let us=$r;const Hr=class Hr extends Xt{constructor(){super("workflowVersions")}static async load(){return new Hr}async listByWorkflowID(e){return await ie[this.tableName].where("workflowID").equals(e).reverse().sortBy("createTime")??[]}async getLatestByWorkflowID(e){const n=await this.listByWorkflowID(e);return n!=null&&n.length?n[0]:null}};Oe(Hr,"TABLE_NAME","workflowVersions");let ds=Hr;function Oh(t){return"type"in t&&t.type==="folder"}let H=null,Cr=null,Y=null,Le=null,Ge=null,qt=null,ge=null;async function Dh(){const t=async()=>{H=await is.load()},e=async()=>{Cr=await us.load()},n=async()=>{Y=await cs.load()},r=async()=>{Le=await ls.load()},o=async()=>{Ge=await as.load()},s=async()=>{qt=new dl},i=async()=>{ge=await ds.load()};await Promise.all([t(),e(),n(),r(),o(),s(),i()]),localStorage.getItem("WORKSPACE_INDEXDB_BACKFILL")!=="true"&&(await jh(),localStorage.setItem("WORKSPACE_INDEXDB_BACKFILL","true"))}async function jh(){const t=async()=>{try{const a=await(H==null?void 0:H.getRecords());a&&await ie.workflows.bulkPut(Object.values(a))}catch(a){console.error(a)}},e=async()=>{try{const a=await(Le==null?void 0:Le.getRecords());a&&await ie.folders.bulkPut(Object.values(a))}catch(a){console.error(a)}},n=async()=>{try{const a=await(qt==null?void 0:qt.getRecords());a&&await ie.media.bulkPut(Object.values(a))}catch(a){console.error(a)}},r=async()=>{try{const a=await(Ge==null?void 0:Ge.getRecords());a&&await ie.changelogs.bulkPut(Object.values(a))}catch(a){console.error(a)}},o=async()=>{try{const a=await(Cr==null?void 0:Cr.getRecords());a&&await ie.tags.bulkPut(Object.values(a))}catch(a){console.error(a)}},s=async()=>{try{const a=Y,l=await a.getRecords().then(u=>u[a.DEFAULT_USER]?u[a.DEFAULT_USER]:u);await ie.userSettings.put({...a.defaultSettings,...l})}catch(a){console.error(a)}},i=async()=>{try{const a=await(ge==null?void 0:ge.getRecords());a&&await ie.workflowVersions.bulkPut(Object.values(a))}catch(a){console.error(a)}};await Promise.all([t(),e(),n(),r(),o(),s(),i()])}const at=P.createContext({curFlowID:null,loadWorkflowID:()=>{},saveCurWorkflow:async()=>{},discardUnsavedChanges:async()=>{},isDirty:!1,loadNewWorkflow:()=>{},loadFilePath:()=>{},setRoute:()=>{},route:"root",curVersion:null,setIsDirty:()=>{},setCurVersion:()=>{},setCurFlowIDAndName:()=>{}}),rm=P.createContext({refreshFolderStamp:0,setRefreshFolderStamp:()=>{}}),Eo={x:0,y:0};function Ph({children:t,onDragEnd:e,dragIconId:n}){const r=P.useRef(Eo),o=P.useRef(!1),[s,i]=P.useState(Eo),a=d=>{var p,h,v;if(!(!(d.target instanceof Element)||!(d.target.parentNode instanceof Element))&&[(p=d.target)==null?void 0:p.id,(v=(h=d.target)==null?void 0:h.parentNode)==null?void 0:v.id].includes(n)){r.current={x:d.clientX,y:d.clientY},o.current=!0,window.addEventListener("mousemove",l),window.addEventListener("mouseup",u);const f=document.getElementsByTagName("body")[0];f.style.userSelect="none"}},l=P.useCallback(d=>{const p={x:d.clientX-r.current.x,y:d.clientY-r.current.y};i(p)},[]),u=P.useCallback(()=>{i(p=>(setTimeout(()=>{e(p)},0),Eo)),o.current=!1;const d=document.getElementsByTagName("body")[0];d.style.userSelect="auto",window.removeEventListener("mousemove",l),window.removeEventListener("mouseup",u)},[e,l]),c={transform:`translate(${s.x}px, ${s.y}px)`,zIndex:o.current?1e3:1};return k.jsx("div",{style:c,onMouseDown:a,children:t})}var Ah={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},Nh=Object.defineProperty,Fh=Object.defineProperties,Rh=Object.getOwnPropertyDescriptors,Br=Object.getOwnPropertySymbols,fl=Object.prototype.hasOwnProperty,hl=Object.prototype.propertyIsEnumerable,Sa=(t,e,n)=>e in t?Nh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ia=(t,e)=>{for(var n in e||(e={}))fl.call(e,n)&&Sa(t,n,e[n]);if(Br)for(var n of Br(e))hl.call(e,n)&&Sa(t,n,e[n]);return t},Th=(t,e)=>Fh(t,Rh(e)),Mh=(t,e)=>{var n={};for(var r in t)fl.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&Br)for(var r of Br(t))e.indexOf(r)<0&&hl.call(t,r)&&(n[r]=t[r]);return n},Ae=(t,e,n)=>{const r=P.forwardRef((o,s)=>{var i=o,{color:a="currentColor",size:l=24,stroke:u=2,children:c}=i,d=Mh(i,["color","size","stroke","children"]);return P.createElement("svg",Ia(Th(Ia({ref:s},Ah),{width:l,height:l,stroke:a,strokeWidth:u,className:`tabler-icon tabler-icon-${t}`}),d),[...n.map(([p,h])=>P.createElement(p,h)),...c||[]])});return r.propTypes={color:Bt.string,size:Bt.oneOfType([Bt.string,Bt.number]),stroke:Bt.oneOfType([Bt.string,Bt.number])},r.displayName=`${e}`,r},Bh=Ae("arrow-back-up-double","IconArrowBackUpDouble",[["path",{d:"M13 14l-4 -4l4 -4",key:"svg-0"}],["path",{d:"M8 14l-4 -4l4 -4",key:"svg-1"}],["path",{d:"M9 10h7a4 4 0 1 1 0 8h-1",key:"svg-2"}]]),zh=Ae("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),zr=Ae("device-floppy","IconDeviceFloppy",[["path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2",key:"svg-0"}],["path",{d:"M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M14 4l0 4l-6 0l0 -4",key:"svg-2"}]]),Lh=Ae("download","IconDownload",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]),pl=Ae("external-link","IconExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]),Wh=Ae("folder","IconFolder",[["path",{d:"M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2",key:"svg-0"}]]),Uh=Ae("grip-vertical","IconGripVertical",[["path",{d:"M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M9 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}],["path",{d:"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-3"}],["path",{d:"M15 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-4"}],["path",{d:"M15 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-5"}]]),Kh=Ae("history","IconHistory",[["path",{d:"M12 8l0 4l2 2",key:"svg-0"}],["path",{d:"M3.05 11a9 9 0 1 1 .5 4m-.5 5v-5h5",key:"svg-1"}]]),$h=Ae("info-circle","IconInfoCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 9h.01",key:"svg-1"}],["path",{d:"M11 12h1v4h1",key:"svg-2"}]]),Hh=Ae("link","IconLink",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]),ml=Ae("lock","IconLock",[["path",{d:"M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z",key:"svg-0"}],["path",{d:"M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M8 11v-4a4 4 0 1 1 8 0v4",key:"svg-2"}]]),Vh=Ae("pencil","IconPencil",[["path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4",key:"svg-0"}],["path",{d:"M13.5 6.5l4 4",key:"svg-1"}]]),qh=Ae("photo","IconPhoto",[["path",{d:"M15 8h.01",key:"svg-0"}],["path",{d:"M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12z",key:"svg-1"}],["path",{d:"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5",key:"svg-2"}],["path",{d:"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3",key:"svg-3"}]]),Gh=Ae("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]),Zh=Ae("refresh","IconRefresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]),Yh=Ae("share-2","IconShare2",[["path",{d:"M8 9h-1a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-8a2 2 0 0 0 -2 -2h-1",key:"svg-0"}],["path",{d:"M12 14v-11",key:"svg-1"}],["path",{d:"M9 6l3 -3l3 3",key:"svg-2"}]]),Jh=Ae("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]),yl=Ae("triangle-inverted-filled","IconTriangleInvertedFilled",[["path",{d:"M20.118 3h-16.225a2.914 2.914 0 0 0 -2.503 4.371l8.116 13.549a2.917 2.917 0 0 0 4.987 .005l8.11 -13.539a2.914 2.914 0 0 0 -2.486 -4.386z",fill:"currentColor",key:"svg-0",strokeWidth:"0"}]]),Xh=Ae("versions","IconVersions",[["path",{d:"M10 5m0 2a2 2 0 0 1 2 -2h6a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M7 7l0 10",key:"svg-1"}],["path",{d:"M4 8l0 8",key:"svg-2"}]]),Qh=Ae("world","IconWorld",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M3.6 9h16.8",key:"svg-1"}],["path",{d:"M3.6 15h16.8",key:"svg-2"}],["path",{d:"M11.5 3a17 17 0 0 0 0 18",key:"svg-3"}],["path",{d:"M12.5 3a17 17 0 0 1 0 18",key:"svg-4"}]]),ep=Ae("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);function tp(t){const{promptMessage:e="Are you sure you want to delete this?",variant:n="ghost",onDelete:r,isDisabled:o=!1,tooltipText:s}=t;return k.jsx(gi,{isLazy:!0,placement:"auto",gutter:0,children:({onClose:i})=>k.jsxs(k.Fragment,{children:[k.jsx(vi,{children:k.jsx(jt,{children:k.jsx(kt,{hasArrow:!0,label:s,placement:"bottom",children:k.jsx(cn,{"aria-label":"Delete confirm",size:"sm",icon:k.jsx(Jh,{color:"#F56565",size:"20px"}),isDisabled:o,variant:n})})})}),k.jsxs(xi,{children:[k.jsx(bi,{onClick:i}),k.jsxs(wi,{children:[k.jsx(wt,{mb:4,pr:4,fontWeight:600,children:e}),k.jsx(Te,{colorScheme:"red",size:"sm",onClick:()=>{r(),i()},children:"Yes, delete"})]})]})]})})}function np({onClose:t}){Ma();const{curFlowID:e,isDirty:n,loadWorkflowID:r,curVersion:o}=P.useContext(at),[s,i]=P.useState(0),[a,l]=P.useState(null),[u,c]=P.useState([]),[d,p]=P.useState([]),h=async m=>{var E;const y=await(H==null?void 0:H.get(m)),g=await(Ge==null?void 0:Ge.listByWorkflowID(m));c(g??[]);const _=g==null?void 0:g.filter(I=>I.json===(y==null?void 0:y.json)),x=(E=_==null?void 0:_[0])==null?void 0:E.id;x&&l(x)},v=async()=>{const m=await(ge==null?void 0:ge.listByWorkflowID(e))??[];p(m)},f=m=>{ge==null||ge.delete(m).then(()=>{v()})};return P.useEffect(()=>{switch(s){case 0:v();break;case 1:h(e);break}},[s]),P.useEffect(()=>(we.canvasEl.addEventListener("click",t),()=>{we.canvasEl.removeEventListener("click",t)}),[s]),k.jsxs(sc,{width:430,height:"100vh",gap:0,position:"fixed",top:0,left:0,zIndex:1e3,children:[k.jsx(oc,{pb:1,mb:0,children:k.jsxs(Ut,{justifyContent:"space-between",alignItems:"center",children:[k.jsx(un,{size:"md",children:"Version History"}),k.jsx(cn,{size:"sm",icon:k.jsx(ep,{}),onClick:t,variant:"ghost","aria-label":"close version history"})]})}),k.jsx(rc,{overflowY:"auto",gap:0,children:k.jsxs(Ci,{isFitted:!0,variant:"enclosed",onChange:i,colorScheme:"teal",children:[k.jsxs(Si,{mb:"1em",children:[k.jsx(No,{children:"Versions"}),k.jsx(No,{children:"Change History"})]}),k.jsxs(Ii,{children:[k.jsx(Ao,{children:k.jsx($e,{divider:k.jsx(Oo,{}),spacing:2,children:d==null?void 0:d.map(m=>k.jsxs(Ut,{w:"100%",mb:1,justify:"space-between",backgroundColor:m.id===(o==null?void 0:o.id)?"teal.300":void 0,borderRadius:4,children:[k.jsxs($e,{textAlign:"left",gap:0,children:[k.jsx(wt,{fontWeight:"500",children:m.name??"untitled"}),k.jsxs(wt,{color:"GrayText",fontSize:"sm",children:["Created: ",ll(m.createTime)]})]}),k.jsxs(Ut,{alignItems:"center",gap:2,children:[k.jsx(Te,{size:"sm",onClick:()=>{if(n){alert("You have unsaved changes, please save or discard your changes to proceed switching version, in case losing your changes.");return}we.loadGraphData(JSON.parse(m.json)),r(e,m.id),t()},children:"Load"}),k.jsx(tp,{promptMessage:"Are you sure you want to delete this version?",onDelete:()=>{f(m.id)}})]})]},m.id))})}),k.jsxs(Ao,{children:[k.jsx(wt,{mb:4,children:"All the saved changes of this workflow"}),k.jsx($e,{divider:k.jsx(Oo,{}),spacing:2,children:u==null?void 0:u.map(m=>k.jsxs(ot,{justifyContent:"space-between",children:[k.jsxs(Te,{size:"sm",variant:"ghost",onClick:()=>{if(n){alert("You have unsaved changes, please save or discard your changes to proceed switching version, in case losing your changes.");return}we.loadGraphData(JSON.parse(m.json)),H==null||H.updateFlow(e,{json:m.json}),t()},isActive:m.id===a,children:["Saved at ",new Date(m.createTime).toLocaleString()]},m.id),m.isAutoSave?k.jsx(mn,{colorScheme:"teal",size:"sm",children:"Auto save"}):null]},m.id))})]})]})]})})]})}function rp({workflowId:t,onClose:e}){const[n,r]=P.useState(""),[o,s]=P.useState(""),i=l=>{r(l.target.value),o&&s("")},a=async()=>{const l=n.trim();if(r(l),(await(ge==null?void 0:ge.listByWorkflowID(t))??[]).some(c=>c.name===l))s("The name is duplicated, please modify it and submit again.");else{const c=JSON.stringify(we.graph.serialize());await(ge==null?void 0:ge.add({name:n,workflowID:t,createTime:Date.now(),json:c})),e()}};return k.jsxs(Gr,{isOpen:!0,onClose:e,children:[k.jsx(ps,{}),k.jsxs(Zr,{children:[k.jsx(ms,{children:"Create Version"}),k.jsx(ys,{}),k.jsx(Yr,{children:k.jsxs(Jr,{isInvalid:!!o,children:[k.jsx(Qr,{children:"Name"}),k.jsx(gn,{value:n,onChange:i,autoFocus:!0,onKeyUp:l=>{l.code==="Enter"&&!o&&n&&a()}}),o&&k.jsx(Xr,{children:o})]})}),k.jsxs(vs,{children:[k.jsx(Te,{colorScheme:"teal",mr:3,onClick:a,isDisabled:!n||!!o,children:"Create"}),k.jsx(Te,{onClick:e,children:"Cancel"})]})]})]})}function op({options:t,menuButton:e,isOpen:n,onClose:r}){const o=P.useRef(null);return jc({ref:o,handler:()=>r()}),k.jsxs(jt,{position:"relative",children:[k.jsx(jt,{children:e}),n&&k.jsx(jt,{ref:o,mt:"8px",shadow:"md",p:"2",position:"absolute",zIndex:"dropdown",children:t})]})}function sp({menuButton:t,menuContent:e,onClose:n}){const r=P.useRef(),[o,s]=P.useState(!1),i=()=>{r.current=setTimeout(()=>s(!1),400)},a=()=>{s(!0),clearTimeout(r.current),r.current=void 0};return k.jsx(op,{isOpen:o,onClose:i,menuButton:k.jsx(jt,{"aria-label":"menu",onClick:a,onMouseEnter:a,onMouseLeave:i,children:t}),options:k.jsx(Ds,{isOpen:!0,children:k.jsx(js,{minWidth:150,zIndex:1e3,onMouseEnter:a,onMouseLeave:i,children:e})})})}const vl="WORKSPACE_CIVIT_API_KEY_STORAGE_KEY";function om(){return localStorage.getItem(vl)}function sm(t){localStorage.setItem(vl,t)}function ap(t){return`https://civitai.com/api/download/models/${t}`}function ip(t,e){return e?`https://civitai.com/models/${t}?modelVersionId=${e}`:`https://civitai.com/models/${t}`}function gl(t){return t.includes("huggingface")?t.replace("/resolve/","/blob/"):void 0}async function am(t){var e,n;try{const r=`https://civitai.com/api/v1/model-versions/by-hash/${t}`,s=await(await fetch(r)).json();let i;if(await(Y==null?void 0:Y.getSetting("showNsfwModelThumbnail"))===!0)i=(n=(e=s==null?void 0:s.images)==null?void 0:e[0])==null?void 0:n.url;else if(!s.model.nsfw){const l=s.images.find(u=>u.nsfwLevel==1);i=l==null?void 0:l.url}return{modelName:s.model.name,civitModelID:String(s.modelId),civitModelVersionID:String(s.id),imageUrl:i??void 0}}catch{return{}}}async function lp(t,e,n){const r=await ie.models.where("fileName").equals(t).toArray()??[],o=r.at(0);return{filename:t,nodeType:e,fileHash:(o==null?void 0:o.fileHash)??null,fileFolder:(o==null?void 0:o.fileFolder)??null,downloadUrl:o!=null&&o.civitModelVersionID?ap(o.civitModelVersionID):(o==null?void 0:o.downloadUrl)??null,inputName:n,length:r.length,infoUrl:o!=null&&o.civitModelID?ip(o.civitModelID,o.civitModelVersionID):gl((o==null?void 0:o.downloadUrl)??"")??null}}async function cp(t){var p,h;let e=[],n={};const r=[".ckpt",".pt",".bin",".pth",".safetensors"],o=[".jpeg",".jpg",".png",".gif",".webp"],s=(h=(p=we.graph.extra)==null?void 0:p[We])==null?void 0:h.deps,i=await we.graphToPrompt();Object.values(i.output).forEach(v=>{v.inputs&&Object.keys(v.inputs).forEach(f=>{var y,g,_;const m=(y=v.inputs)==null?void 0:y[f];typeof m=="string"&&(r.some(x=>m.endsWith(x))&&((g=s==null?void 0:s.models)!=null&&g[m]?e.push(Promise.resolve(s.models[m])):e.push(lp(m,v.class_type,f))),o.some(x=>m.endsWith(x))&&(n[m]=((_=s==null?void 0:s.images)==null?void 0:_[m])??{filename:m,nodeType:v.class_type}))})});const l=await fetch("workspace/fetch_node_repos",{method:"POST",body:JSON.stringify({nodes:t.map(v=>v.type)})}).then(v=>v.ok?v.json():[]).catch(v=>(console.error("Error fetching node repos",v),[])),u=await Promise.all(e),c={};u.forEach(v=>{c[v.filename]=v});const d={};return Object.values(l).forEach(v=>{d[v.gitRepo]=v}),{models:c,images:n,nodeRepos:Object.values(d)}}const up=P.forwardRef(function(e,n){const{saveCurWorkflow:r,setRoute:o}=P.useContext(at),[s,i]=P.useState(),[a,l]=P.useState({}),[u,c]=P.useState(!1),d=P.useCallback(async()=>{const g=we.graph.serialize();cp(g.nodes??[]).then(_=>{i(_)})},[]),p=P.useCallback(async()=>{i(void 0),await uf(),window.addEventListener("model_list_updated",()=>{d(),window.removeEventListener("model_list_updated",()=>{})})},[]);P.useEffect(()=>{d()},[]);const h=g=>!!new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i").test(g),v=async g=>{var R;g.preventDefault(),g.stopPropagation();const _=new FormData(g.target),x=Object.values((s==null?void 0:s.models)??{}).map(async W=>{var w,T;const D=(w=_.get(W.filename))==null?void 0:w.toString();if(D!=null&&D.length){const V=dp(W.filename);await ie.models.update(V+"@"+W.fileFolder,{downloadUrl:D})}const M=(T=W.infoUrl)!=null&&T.length?W.infoUrl:D?gl(D):null;return{filename:W.filename,nodeType:W.nodeType,fileHash:W.fileHash,fileFolder:W.fileFolder,downloadUrl:D??W.downloadUrl??null,infoUrl:M??null,inputName:W.inputName}})??[],E=await Promise.all(x);if(!f(E))return;l({}),c(!0);const I=Object.values((s==null?void 0:s.images)??{}).filter(W=>!W.url).map(W=>W.filename),C=(s==null?void 0:s.images)??{};if(I.length){const D=await(await Ee("/workspace/upload_image",{method:"POST",body:JSON.stringify({images:I})})).json();Object.keys(D).forEach(M=>{C!=null&&C[M]&&(C[M].url=D[M])})}c(!1);const N={};E.forEach(W=>{N[W.filename]=W});const j=we.graph.serialize();(R=j.extra||(j.extra={}))[We]||(R[We]={}),j.extra[We].deps={models:N,images:C??{},nodeRepos:(s==null?void 0:s.nodeRepos)??[]},await we.graphToPrompt(we.graph).then(W=>{j.extra[We].apiPrompt=W.output}),await r(),window.dispatchEvent(new CustomEvent("workspace_info_deps_updated",{detail:j})),console.log("graph",j)},f=P.useCallback(g=>{let _=!0;return g.forEach(x=>{const E=x.filename;if(!x.downloadUrl){l(I=>({...I,[E]:"Invalid URL"})),_=!1;return}if(!h(x.downloadUrl)){l(I=>({...I,[E]:"Invalid URL"})),_=!1;return}if(!x.fileFolder){l(I=>({...I,[E]:"Model file not found, please re-scan models folder"})),_=!1;return}}),_},[]),m=Object.values((s==null?void 0:s.images)??{}),y=Object.values((s==null?void 0:s.models)??[]);return s?k.jsx("form",{onSubmit:v,ref:n,children:k.jsxs($e,{gap:5,children:[k.jsxs($e,{children:[k.jsxs(un,{size:"sm",children:["Models (",y.length,")"]}),y.map((g,_)=>k.jsx(fp,{modelFile:g,errors:a,onClickRefetchModelList:p},_))]}),m.length>0&&k.jsxs($e,{children:[k.jsxs(ot,{children:[k.jsxs(un,{size:"sm",children:["Images (",m.length,")"]}),k.jsx("p",{style:{color:"GrayText"},children:"Will be uploaded as url"})]}),u&&k.jsxs("span",{children:[k.jsx(Zs,{size:"md",color:"teal.400"})," Uploading"]}),m.map(g=>k.jsxs($e,{children:[k.jsx("p",{children:g.filename}),k.jsx(Wa,{width:250,src:`/workspace/view_media?filename=${g.filename}&isPreview=true&isInput=true`})]},g.filename))]})]})}):k.jsx(Zs,{size:"md",color:"teal.400"})});function dp(t){const e=t.split(".");return e.length>1?(e.pop(),e.join(".")):t}function fp({modelFile:t,errors:e,onClickRefetchModelList:n}){const r=t.filename,[o,s]=P.useState(!t.downloadUrl);return t.fileFolder?k.jsxs($e,{ml:2,children:[k.jsxs(Ut,{gap:2,children:[k.jsx(mn,{height:"fit-content",colorScheme:"teal",children:t.fileFolder}),t.downloadUrl?k.jsxs(ot,{children:[k.jsx("a",{href:t.infoUrl??t.downloadUrl,target:"_blank",children:t.filename}),k.jsx(pl,{size:18}),k.jsx(cn,{ml:3,"aria-label":"edit",icon:k.jsx(Vh,{size:18}),size:"xs",onClick:()=>s(!o)})]}):k.jsx($e,{children:k.jsxs("span",{children:[t.filename," ",k.jsx("span",{children:"❓"})]})})]},t.filename+t.nodeType),k.jsx($e,{style:{display:o?"block":"none"},children:k.jsx(kt,{label:"Model download link, supports Huggingface and Civitai",children:k.jsx(gn,{name:r,defaultValue:t.downloadUrl??"",size:"sm",isInvalid:e[r]!=null,placeholder:"https://civitai.com/api/download/models/324524"})})}),k.jsx(wt,{color:"red.400",children:e[r]})]}):k.jsxs($e,{children:[k.jsxs(Ut,{gap:2,children:[k.jsx("p",{children:t.filename}),k.jsx(mn,{size:"sm",colorScheme:"red",children:"Model file not found"})]}),k.jsx(Te,{size:"sm",leftIcon:k.jsx(Zh,{}),width:"fit-content",borderColor:"red",borderWidth:e[r]!=null?2:0,onClick:n,children:"Fetch model file"})]})}function hp(){const{setRoute:t}=P.useContext(at),e=P.useRef(null);return k.jsx(Gr,{isOpen:!0,onClose:()=>t("root"),size:"xl",children:k.jsx(Zr,{children:k.jsxs(Yr,{p:5,gap:5,children:[k.jsxs(ot,{children:[k.jsx(un,{size:"md",children:"Add Resouce Dependencies"}),k.jsx(kt,{label:`runnable workflows include all resource dependecy download urls - (models, cursom nodes, input images) and can be one-click - installed and run in any ComfyUI with workpace-manager installed.`,children:k.jsx(Qa,{borderRadius:10,children:k.jsx($h,{size:20})})})]}),k.jsx(wt,{color:"GrayText",children:"Export runnable workflow"}),k.jsx(up,{ref:e}),k.jsxs(ot,{justifyContent:"flex-end",children:[k.jsx(Te,{colorScheme:"teal",size:"sm",onClick:()=>{var n;return(n=e.current)==null?void 0:n.requestSubmit()},children:"Next"}),k.jsx(Te,{size:"sm",onClick:()=>t("share"),children:"Skip"})]})]})})})}function pp(t,e){const n=new Blob([t],{type:"application/json"}),r=URL.createObjectURL(n),o=document.createElement("a");o.href=r,o.download=`${e}.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(r)}function im(t){const e=new Uint8Array(t);return window.crypto.getRandomValues(e),Array.from(e,n=>n.toString(16).padStart(2,"0")).join("")}const lm=[{label:"Private",value:"PRIVATE",icon:k.jsx(ml,{})},{label:"Unlisted, anyone with the link can view",value:"UNLISTED",icon:k.jsx(Hh,{})},{label:"Public",value:"PUBLIC",icon:k.jsx(Qh,{})}],cm=()=>{const t=we.graph._nodes,e={};for(let n of t)if(n.type in LiteGraph.registered_node_types){const r=structuredClone(LiteGraph.registered_node_types[n.type].nodeData);if(r==null)continue;for(let o in r.input){const s=r.input[o];for(let i in s){const a=s[i];Array.isArray(a[0])&&(a[0]=["value_1","value_2"])}}e[n.type]=r}return e};async function mp(t){const e=t.cloudOrigin;if(!e)throw Error("cloudURL is required");return fetch(e+`/api/getWorkflow?id=${t.cloudID}`).then(n=>n.json()).then(n=>{var o;return((o=n.data)==null?void 0:o.privacy)??"PRIVATE"})}function um({privacy:t,showEmoji:e=!1}){let n;return t==="PRIVATE"?(n="Private",e&&(n="🔒 Private")):t==="UNLISTED"?(n="Unlisted",e&&(n="🔗 Unlisted")):t==="PUBLIC"&&(n="Public",e&&(n="🌐 Public")),k.jsx("span",{children:n})}function yp({}){const[t,e]=P.useState(),[n,r]=P.useState(),{curFlowID:o}=P.useContext(at);return P.useEffect(()=>{o&&(H==null||H.get(o).then(s=>{s!=null&&s.cloudID?(e(s.cloudOrigin+"/workflow/"+s.cloudID),mp(s).then(i=>{r(i)})):e(void 0)}))},[o]),t?k.jsx("a",{href:t,style:{textDecoration:"none"},target:"_blank",children:k.jsx(Na,{children:k.jsx(mn,{children:n==="PUBLIC"?"🌐":n==="UNLISTED"?"🔗":"🔒"})})}):null}const vp=P.lazy(()=>Tt(()=>import("./ShareDialog-3XWt4eF0.js"),__vite__mapDeps([0,1,2,3,4])));function gp(){var x;const{curFlowID:t,loadWorkflowID:e,discardUnsavedChanges:n,saveCurWorkflow:r,setRoute:o,route:s}=P.useContext(at),[i,a]=P.useState(!1),[l,u]=P.useState(""),[c,d]=P.useState(""),[p,h]=P.useState(),[v,f]=P.useState({save:"",saveAs:""});P.useEffect(()=>{t&&(H==null||H.get(t).then(E=>{u((E==null?void 0:E.name)??""),h(E)})),Y==null||Y.getSetting("shortcuts").then(E=>{f(E)})},[t]);const m=E=>{u(E.target.value),c&&d("")},y=async()=>{if(!t){alert("Flow ID is required");return}const E=JSON.stringify(we.graph.serialize()),I=await(H==null?void 0:H.createFlow({json:E,name:l,parentFolderID:p==null?void 0:p.parentFolderID}));I&&await e(I.id,null,!0),g()},g=()=>{o("root")},_=P.useCallback(async()=>{const E=H==null?void 0:H.curWorkflow;if(!E){alert("No current workflow!");return}const I=we.graph.serialize(),C=JSON.stringify(I,null,2);pp(C,E.name)},[t]);return k.jsxs(k.Fragment,{children:[k.jsx(sp,{menuButton:k.jsx(Na,{children:k.jsxs(Te,{px:1,height:$s+"px","aria-label":"menu",size:"sm",backgroundColor:"#434554",children:["File",k.jsx(zh,{size:20})]})}),menuContent:k.jsx(Ds,{isOpen:!0,children:k.jsxs(js,{minWidth:150,zIndex:1e3,children:[k.jsx(Ct,{onClick:()=>r(),icon:k.jsx(zr,{size:20}),iconSpacing:1,command:v.save,children:"Save"}),!((x=Y==null?void 0:Y.settings)!=null&&x.autoSave)&&k.jsx(kt,{label:"Revert workflow to your last saved version. You will lose all changes made since your last save.",children:k.jsx(Ct,{onClick:n,icon:k.jsx(Bh,{size:20}),iconSpacing:1,children:"Discard unsaved changes"})}),k.jsx(Ct,{onClick:_,icon:k.jsx(Lh,{size:20}),iconSpacing:1,children:"Download"}),k.jsx(Ct,{onClick:()=>o("saveAsModal"),icon:k.jsx(zr,{size:20}),iconSpacing:1,command:v.saveAs,children:"Save As"}),k.jsx(Ct,{onClick:()=>a(!0),icon:k.jsx(Xh,{size:20}),iconSpacing:1,children:"Create Version"}),k.jsx(Ct,{onClick:()=>o("versionHistory"),icon:k.jsx(Kh,{size:20}),iconSpacing:1,children:"Versions History"}),k.jsx(Ct,{onClick:()=>o("share"),icon:k.jsx(Yh,{size:20}),iconSpacing:1,alignItems:"center",children:k.jsxs(ot,{children:[k.jsx("p",{children:"Share"})," ",k.jsx(mn,{size:"sm",children:"🧪beta"}),k.jsx(yp,{})]})})]})})}),s==="share"&&k.jsx(vp,{onClose:()=>o("root")}),s=="versionHistory"&&k.jsx(np,{onClose:()=>o("root")}),s=="downloadSpaceJson"&&k.jsx(hp,{}),s==="saveAsModal"&&k.jsxs(Gr,{isOpen:!0,onClose:g,children:[k.jsx(ps,{}),k.jsxs(Zr,{children:[k.jsx(ms,{children:"Save As"}),k.jsx(ys,{}),k.jsx(Yr,{children:k.jsxs(Jr,{isInvalid:!!c,children:[k.jsx(Qr,{children:"Workflow name"}),k.jsx(gn,{value:l,onChange:m,autoFocus:!0,onKeyUp:E=>{E.code==="Enter"&&!c&&l&&y()}}),c&&k.jsx(Xr,{children:c})]})}),k.jsxs(vs,{children:[k.jsx(Te,{colorScheme:"teal",mr:3,onClick:y,isDisabled:!l||!!c,children:"Save"}),k.jsx(Te,{onClick:g,children:"Cancel"})]})]})]}),i&&k.jsx(rp,{workflowId:t,onClose:()=>a(!1)})]})}function wp({displayName:t,updateFlowName:e,isDirty:n}){const{isOpen:r,onOpen:o,onClose:s}=Nc(),{curFlowID:i}=P.useContext(at),[a,l]=P.useState(t),[u,c]=P.useState(""),d=()=>{l(t),o()},p=f=>{l(f.target.value),u&&c("")},h=async()=>{var f;if(i){const m=a.trim();if(l(m),t===m)return v();await(H==null?void 0:H.generateUniqueName(m,((f=H.curWorkflow)==null?void 0:f.parentFolderID)??""))!==m?c("The name is duplicated, please modify it and submit again."):(await(H==null?void 0:H.updateName(i,{name:m})),e(m),v())}},v=()=>{c(""),s()};return i==null?null:k.jsxs(ot,{children:[k.jsx(kt,{label:t,placement:"bottom",children:k.jsxs(wt,{as:"div",color:"white",onClick:d,maxW:200,fontWeight:500,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:[k.jsx("div",{style:{width:8,display:"inline-block"},children:k.jsx(wt,{as:"span",children:n&&"* "})}),t]})}),k.jsxs(Gr,{isOpen:r,onClose:v,children:[k.jsx(ps,{}),k.jsxs(Zr,{children:[k.jsx(ms,{children:"Edit workflow name"}),k.jsx(ys,{}),k.jsx(Yr,{children:k.jsxs(Jr,{isInvalid:!!u,children:[k.jsx(Qr,{children:"Workflow name"}),k.jsx(gn,{value:a,onChange:p,autoFocus:!0,onKeyUp:f=>{f.code==="Enter"&&!u&&a&&h()}}),u&&k.jsx(Xr,{children:u})]})}),k.jsxs(vs,{children:[k.jsx(Te,{colorScheme:"teal",mr:3,onClick:h,isDisabled:!a||!!u,children:"Save"}),k.jsx(Te,{onClick:v,children:"Cancel"})]})]})]})]})}function bp({}){const{setRoute:t,curVersion:e,isDirty:n,setCurVersion:r}=P.useContext(at);return P.useEffect(()=>{n&&e&&(e==null?void 0:e.name.endsWith("*"))===!1&&(r==null||r({...e,name:e.name+"*"}))},[n]),e?k.jsx(Ut,{alignItems:"center",children:k.jsx(Ua,{size:"sm",isAttached:!0,variant:"outline",children:k.jsx(Te,{rightIcon:k.jsx(yl,{size:10}),onClick:()=>t("versionHistory"),children:e.name})})}):null}function _p(){const{loadNewWorkflow:t,setCurFlowIDAndName:e,curFlowID:n}=P.useContext(at),r=async()=>{const o=JSON.stringify(we.graph.serialize()),s=prompt("Enter workflow name","Untitled");if(!s)return;const i=await(H==null?void 0:H.createFlow({json:o,name:s}));i&&e(i)};return k.jsx(kt,{label:n?"New workflow":"Save workflow",children:k.jsx(Te,{size:"sm",variant:"outline",colorScheme:"teal","aria-label":"new workflow",height:$s+"px",onClick:()=>n?t():r(),px:1,children:n?k.jsx(Gh,{size:16,color:"white"}):k.jsx(zr,{size:16,color:"white"})})})}const xp=P.lazy(()=>Tt(()=>import("./AppIsDirtyEventListener-z5bVS2B2.js"),__vite__mapDeps([5,1,6]))),kp=P.lazy(()=>Tt(()=>import("./ModelManagerTopbar-vr3vytmQ.js").then(t=>t.M),__vite__mapDeps([7,1,8,3,9,10]))),Ep=P.lazy(()=>Tt(()=>import("./SpotlightSearch-wRJMVnPo.js"),__vite__mapDeps([11,1,6,12,13])));function Cp({curFlowName:t,setCurFlowName:e}){var c;const{isDirty:n,saveCurWorkflow:r,setRoute:o,curFlowID:s,route:i}=P.useContext(at),[a,l]=P.useState(),u=P.useCallback((d,p=!1)=>{const{top:h=0,left:v=0}=a||{};let{top:f=0,left:m=0}=d??{};f+=h,m+=v;const y=document.documentElement.clientWidth,g=document.documentElement.clientHeight,_=document.getElementById("workspaceManagerPanel"),x=(_==null?void 0:_.offsetWidth)||392;f+36>g&&(f=g-36),m+x>=y&&(m=y-x),l({top:Math.max(0,f),left:Math.max(0,m)}),p&&(Y==null||Y.upsert({topBarStyle:{top:f,left:m}}))},[a]);return P.useEffect(()=>{Y==null||Y.getSetting("topBarStyle").then(d=>{u(d,!1)})},[]),a?k.jsx(Ph,{onDragEnd:d=>{u({top:d.y,left:d.x},!0)},dragIconId:"dragPanelIcon",children:k.jsxs(ot,{style:{padding:2,position:"fixed",...a},justifyContent:"space-between",alignItems:"center",gap:2,draggable:!1,id:"workspaceManagerPanel",className:"workspaceManagerPanel",children:[k.jsx(Te,{size:"sm","aria-label":"workspace folder",height:$s+"px",onClick:()=>o("recentFlows"),px:2,children:k.jsxs(ot,{gap:1,children:[k.jsx(Wh,{size:21}),k.jsx(yl,{size:8})]})}),k.jsx(P.Suspense,{fallback:k.jsx("div",{style:{width:"60px"}}),children:k.jsx(kp,{})}),k.jsx(_p,{}),k.jsx(wp,{isDirty:n,displayName:t??"",updateFlowName:d=>{e(d),requestAnimationFrame(()=>{u()})}}),((c=H==null?void 0:H.curWorkflow)==null?void 0:c.saveLock)&&k.jsx(ml,{color:"#FFF",size:20}),s&&k.jsxs(ot,{gap:"4px",children:[k.jsx(kt,{label:"Open gallery",children:k.jsx(cn,{onClick:()=>o("gallery"),icon:k.jsx(qh,{size:22,color:"white"}),size:"sm","aria-label":"open gallery",variant:"ghost"})}),k.jsx(gp,{})]}),s&&n?k.jsx(kt,{label:"Save workflow",children:k.jsx(cn,{onClick:()=>r(),icon:k.jsx(zr,{size:23,color:"white"}),size:"xs",paddingY:4,"aria-label":"save workspace",variant:"ghost"})}):k.jsx("div",{style:{width:1}}),k.jsx(bp,{}),k.jsx(xp,{}),k.jsx(Uh,{id:"dragPanelIcon",className:"dragPanelIcon",cursor:"move",size:15,color:"#FFF"}),i==="spotlightSearch"&&k.jsx(Ep,{})]})}):null}function Sp(){const{showDialog:t}=Fa(),{loadWorkflowID:e}=P.useContext(at),n=async(o,s)=>{var u,c;const{workflow:i,version:a}=o.detail;if(!i.id||!a.id)return;const l=(u=await(H==null?void 0:H.listByIndex("cloudID",i.id)))==null?void 0:u.at(0);if(l){const d=(c=await(ge==null?void 0:ge.listByIndex("cloudID",a.id)))==null?void 0:c.at(0);if(d)await e(l.id,d.id);else{const p=await(ge==null?void 0:ge.add({id:a.id,cloudID:a.id,workflowID:l.id,cloudOrigin:s,name:a.name,authorID:a.authorID,json:a.json}));p&&e(l.id,p.id)}}else{const d=await(H==null?void 0:H.createFlow({cloudID:i.id,cloudOrigin:s,name:i.name,json:a.json,updateTime:Date.now()}));if(!d){alert("Failed to add workflow to local db");return}const p=await(ge==null?void 0:ge.put({id:a.id,cloudID:a.id,workflowID:d.id,cloudOrigin:s,name:a.name,json:a.json,authorID:a.authorID,createTime:Date.now()}));await e(d.id,p==null?void 0:p.id)}},r=async o=>{const s=o.data;if(Ip(s)){const i=o.origin;t(`Open workflow "${s.detail.workflow.name}", version "${s.detail.version.name}" from ${i}`,[{label:"Open",colorScheme:"teal",onClick:()=>{n(s,i)}}])}};return P.useEffect(()=>{window.opener&&window.opener.postMessage("comfyui_workspace_manager_connected","*"),window.addEventListener("message",r)},[]),null}function Ip(t){return t.type==="workspace_open_workflow"}const Op=t=>typeof t=="function",Dp=t=>{const[e,n]=P.useState(t),r=P.useRef(e),o=P.useCallback(s=>{r.current=Op(s)?s(r.current):s,n(r.current)},[]);return[e,o,r]};function fr(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var wl={exports:{}};/*! - -JSZip v3.10.1 - A JavaScript class for generating and reading zip files - - -(c) 2009-2016 Stuart Knightley -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. - -JSZip uses the library pako released under the MIT license : -https://github.com/nodeca/pako/blob/main/LICENSE -*/(function(t,e){(function(n){t.exports=n()})(function(){return function n(r,o,s){function i(u,c){if(!o[u]){if(!r[u]){var d=typeof fr=="function"&&fr;if(!c&&d)return d(u,!0);if(a)return a(u,!0);var p=new Error("Cannot find module '"+u+"'");throw p.code="MODULE_NOT_FOUND",p}var h=o[u]={exports:{}};r[u][0].call(h.exports,function(v){var f=r[u][1][v];return i(f||v)},h,h.exports,n,r,o,s)}return o[u].exports}for(var a=typeof fr=="function"&&fr,l=0;l>2,h=(3&u)<<4|c>>4,v=1<_?(15&c)<<2|d>>6:64,f=2<_?63&d:64,m.push(a.charAt(p)+a.charAt(h)+a.charAt(v)+a.charAt(f));return m.join("")},o.decode=function(l){var u,c,d,p,h,v,f=0,m=0,y="data:";if(l.substr(0,y.length)===y)throw new Error("Invalid base64 input, it looks like a data url.");var g,_=3*(l=l.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(l.charAt(l.length-1)===a.charAt(64)&&_--,l.charAt(l.length-2)===a.charAt(64)&&_--,_%1!=0)throw new Error("Invalid base64 input, bad content length.");for(g=i.uint8array?new Uint8Array(0|_):new Array(0|_);f>4,c=(15&p)<<4|(h=a.indexOf(l.charAt(f++)))>>2,d=(3&h)<<6|(v=a.indexOf(l.charAt(f++))),g[m++]=u,h!==64&&(g[m++]=c),v!==64&&(g[m++]=d);return g}},{"./support":30,"./utils":32}],2:[function(n,r,o){var s=n("./external"),i=n("./stream/DataWorker"),a=n("./stream/Crc32Probe"),l=n("./stream/DataLengthProbe");function u(c,d,p,h,v){this.compressedSize=c,this.uncompressedSize=d,this.crc32=p,this.compression=h,this.compressedContent=v}u.prototype={getContentWorker:function(){var c=new i(s.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new l("data_length")),d=this;return c.on("end",function(){if(this.streamInfo.data_length!==d.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),c},getCompressedWorker:function(){return new i(s.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},u.createWorkerFrom=function(c,d,p){return c.pipe(new a).pipe(new l("uncompressedSize")).pipe(d.compressWorker(p)).pipe(new l("compressedSize")).withStreamInfo("compression",d)},r.exports=u},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(n,r,o){var s=n("./stream/GenericWorker");o.STORE={magic:"\0\0",compressWorker:function(){return new s("STORE compression")},uncompressWorker:function(){return new s("STORE decompression")}},o.DEFLATE=n("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(n,r,o){var s=n("./utils"),i=function(){for(var a,l=[],u=0;u<256;u++){a=u;for(var c=0;c<8;c++)a=1&a?3988292384^a>>>1:a>>>1;l[u]=a}return l}();r.exports=function(a,l){return a!==void 0&&a.length?s.getTypeOf(a)!=="string"?function(u,c,d,p){var h=i,v=p+d;u^=-1;for(var f=p;f>>8^h[255&(u^c[f])];return-1^u}(0|l,a,a.length,0):function(u,c,d,p){var h=i,v=p+d;u^=-1;for(var f=p;f>>8^h[255&(u^c.charCodeAt(f))];return-1^u}(0|l,a,a.length,0):0}},{"./utils":32}],5:[function(n,r,o){o.base64=!1,o.binary=!1,o.dir=!1,o.createFolders=!0,o.date=null,o.compression=null,o.compressionOptions=null,o.comment=null,o.unixPermissions=null,o.dosPermissions=null},{}],6:[function(n,r,o){var s=null;s=typeof Promise<"u"?Promise:n("lie"),r.exports={Promise:s}},{lie:37}],7:[function(n,r,o){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",i=n("pako"),a=n("./utils"),l=n("./stream/GenericWorker"),u=s?"uint8array":"array";function c(d,p){l.call(this,"FlateWorker/"+d),this._pako=null,this._pakoAction=d,this._pakoOptions=p,this.meta={}}o.magic="\b\0",a.inherits(c,l),c.prototype.processChunk=function(d){this.meta=d.meta,this._pako===null&&this._createPako(),this._pako.push(a.transformTo(u,d.data),!1)},c.prototype.flush=function(){l.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){l.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var d=this;this._pako.onData=function(p){d.push({data:p,meta:d.meta})}},o.compressWorker=function(d){return new c("Deflate",d)},o.uncompressWorker=function(){return new c("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(n,r,o){function s(h,v){var f,m="";for(f=0;f>>=8;return m}function i(h,v,f,m,y,g){var _,x,E=h.file,I=h.compression,C=g!==u.utf8encode,N=a.transformTo("string",g(E.name)),j=a.transformTo("string",u.utf8encode(E.name)),R=E.comment,W=a.transformTo("string",g(R)),D=a.transformTo("string",u.utf8encode(R)),M=j.length!==E.name.length,w=D.length!==R.length,T="",V="",A="",X=E.dir,$=E.date,ne={crc32:0,compressedSize:0,uncompressedSize:0};v&&!f||(ne.crc32=h.crc32,ne.compressedSize=h.compressedSize,ne.uncompressedSize=h.uncompressedSize);var z=0;v&&(z|=8),C||!M&&!w||(z|=2048);var B=0,te=0;X&&(B|=16),y==="UNIX"?(te=798,B|=function(Z,me){var be=Z;return Z||(be=me?16893:33204),(65535&be)<<16}(E.unixPermissions,X)):(te=20,B|=function(Z){return 63&(Z||0)}(E.dosPermissions)),_=$.getUTCHours(),_<<=6,_|=$.getUTCMinutes(),_<<=5,_|=$.getUTCSeconds()/2,x=$.getUTCFullYear()-1980,x<<=4,x|=$.getUTCMonth()+1,x<<=5,x|=$.getUTCDate(),M&&(V=s(1,1)+s(c(N),4)+j,T+="up"+s(V.length,2)+V),w&&(A=s(1,1)+s(c(W),4)+D,T+="uc"+s(A.length,2)+A);var J="";return J+=` -\0`,J+=s(z,2),J+=I.magic,J+=s(_,2),J+=s(x,2),J+=s(ne.crc32,4),J+=s(ne.compressedSize,4),J+=s(ne.uncompressedSize,4),J+=s(N.length,2),J+=s(T.length,2),{fileRecord:d.LOCAL_FILE_HEADER+J+N+T,dirRecord:d.CENTRAL_FILE_HEADER+s(te,2)+J+s(W.length,2)+"\0\0\0\0"+s(B,4)+s(m,4)+N+T+W}}var a=n("../utils"),l=n("../stream/GenericWorker"),u=n("../utf8"),c=n("../crc32"),d=n("../signature");function p(h,v,f,m){l.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=v,this.zipPlatform=f,this.encodeFileName=m,this.streamFiles=h,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}a.inherits(p,l),p.prototype.push=function(h){var v=h.meta.percent||0,f=this.entriesCount,m=this._sources.length;this.accumulate?this.contentBuffer.push(h):(this.bytesWritten+=h.data.length,l.prototype.push.call(this,{data:h.data,meta:{currentFile:this.currentFile,percent:f?(v+100*(f-m-1))/f:100}}))},p.prototype.openedSource=function(h){this.currentSourceOffset=this.bytesWritten,this.currentFile=h.file.name;var v=this.streamFiles&&!h.file.dir;if(v){var f=i(h,v,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:f.fileRecord,meta:{percent:0}})}else this.accumulate=!0},p.prototype.closedSource=function(h){this.accumulate=!1;var v=this.streamFiles&&!h.file.dir,f=i(h,v,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(f.dirRecord),v)this.push({data:function(m){return d.DATA_DESCRIPTOR+s(m.crc32,4)+s(m.compressedSize,4)+s(m.uncompressedSize,4)}(h),meta:{percent:100}});else for(this.push({data:f.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},p.prototype.flush=function(){for(var h=this.bytesWritten,v=0;v=this.index;l--)u=(u<<8)+this.byteAt(l);return this.index+=a,u},readString:function(a){return s.transformTo("string",this.readData(a))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC(1980+(a>>25&127),(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},r.exports=i},{"../utils":32}],19:[function(n,r,o){var s=n("./Uint8ArrayReader");function i(a){s.call(this,a)}n("../utils").inherits(i,s),i.prototype.readData=function(a){this.checkOffset(a);var l=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,l},r.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(n,r,o){var s=n("./DataReader");function i(a){s.call(this,a)}n("../utils").inherits(i,s),i.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},i.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},i.prototype.readAndCheckSignature=function(a){return a===this.readData(4)},i.prototype.readData=function(a){this.checkOffset(a);var l=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,l},r.exports=i},{"../utils":32,"./DataReader":18}],21:[function(n,r,o){var s=n("./ArrayReader");function i(a){s.call(this,a)}n("../utils").inherits(i,s),i.prototype.readData=function(a){if(this.checkOffset(a),a===0)return new Uint8Array(0);var l=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,l},r.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(n,r,o){var s=n("../utils"),i=n("../support"),a=n("./ArrayReader"),l=n("./StringReader"),u=n("./NodeBufferReader"),c=n("./Uint8ArrayReader");r.exports=function(d){var p=s.getTypeOf(d);return s.checkSupport(p),p!=="string"||i.uint8array?p==="nodebuffer"?new u(d):i.uint8array?new c(s.transformTo("uint8array",d)):new a(s.transformTo("array",d)):new l(d)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(n,r,o){o.LOCAL_FILE_HEADER="PK",o.CENTRAL_FILE_HEADER="PK",o.CENTRAL_DIRECTORY_END="PK",o.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",o.ZIP64_CENTRAL_DIRECTORY_END="PK",o.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(n,r,o){var s=n("./GenericWorker"),i=n("../utils");function a(l){s.call(this,"ConvertWorker to "+l),this.destType=l}i.inherits(a,s),a.prototype.processChunk=function(l){this.push({data:i.transformTo(this.destType,l.data),meta:l.meta})},r.exports=a},{"../utils":32,"./GenericWorker":28}],25:[function(n,r,o){var s=n("./GenericWorker"),i=n("../crc32");function a(){s.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}n("../utils").inherits(a,s),a.prototype.processChunk=function(l){this.streamInfo.crc32=i(l.data,this.streamInfo.crc32||0),this.push(l)},r.exports=a},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(n,r,o){var s=n("../utils"),i=n("./GenericWorker");function a(l){i.call(this,"DataLengthProbe for "+l),this.propName=l,this.withStreamInfo(l,0)}s.inherits(a,i),a.prototype.processChunk=function(l){if(l){var u=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=u+l.data.length}i.prototype.processChunk.call(this,l)},r.exports=a},{"../utils":32,"./GenericWorker":28}],27:[function(n,r,o){var s=n("../utils"),i=n("./GenericWorker");function a(l){i.call(this,"DataWorker");var u=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,l.then(function(c){u.dataIsReady=!0,u.data=c,u.max=c&&c.length||0,u.type=s.getTypeOf(c),u.isPaused||u._tickAndRepeat()},function(c){u.error(c)})}s.inherits(a,i),a.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},a.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,s.delay(this._tickAndRepeat,[],this)),!0)},a.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(s.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},a.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var l=null,u=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":l=this.data.substring(this.index,u);break;case"uint8array":l=this.data.subarray(this.index,u);break;case"array":case"nodebuffer":l=this.data.slice(this.index,u)}return this.index=u,this.push({data:l,meta:{percent:this.max?this.index/this.max*100:0}})},r.exports=a},{"../utils":32,"./GenericWorker":28}],28:[function(n,r,o){function s(i){this.name=i||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}s.prototype={push:function(i){this.emit("data",i)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(i){this.emit("error",i)}return!0},error:function(i){return!this.isFinished&&(this.isPaused?this.generatedError=i:(this.isFinished=!0,this.emit("error",i),this.previous&&this.previous.error(i),this.cleanUp()),!0)},on:function(i,a){return this._listeners[i].push(a),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(i,a){if(this._listeners[i])for(var l=0;l "+i:i}},r.exports=s},{}],29:[function(n,r,o){var s=n("../utils"),i=n("./ConvertWorker"),a=n("./GenericWorker"),l=n("../base64"),u=n("../support"),c=n("../external"),d=null;if(u.nodestream)try{d=n("../nodejs/NodejsStreamOutputAdapter")}catch{}function p(v,f){return new c.Promise(function(m,y){var g=[],_=v._internalType,x=v._outputType,E=v._mimeType;v.on("data",function(I,C){g.push(I),f&&f(C)}).on("error",function(I){g=[],y(I)}).on("end",function(){try{var I=function(C,N,j){switch(C){case"blob":return s.newBlob(s.transformTo("arraybuffer",N),j);case"base64":return l.encode(N);default:return s.transformTo(C,N)}}(x,function(C,N){var j,R=0,W=null,D=0;for(j=0;j"u")o.blob=!1;else{var s=new ArrayBuffer(0);try{o.blob=new Blob([s],{type:"application/zip"}).size===0}catch{try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(s),o.blob=i.getBlob("application/zip").size===0}catch{o.blob=!1}}}try{o.nodestream=!!n("readable-stream").Readable}catch{o.nodestream=!1}},{"readable-stream":16}],31:[function(n,r,o){for(var s=n("./utils"),i=n("./support"),a=n("./nodejsUtils"),l=n("./stream/GenericWorker"),u=new Array(256),c=0;c<256;c++)u[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;u[254]=u[254]=1;function d(){l.call(this,"utf-8 decode"),this.leftOver=null}function p(){l.call(this,"utf-8 encode")}o.utf8encode=function(h){return i.nodebuffer?a.newBufferFrom(h,"utf-8"):function(v){var f,m,y,g,_,x=v.length,E=0;for(g=0;g>>6:(m<65536?f[_++]=224|m>>>12:(f[_++]=240|m>>>18,f[_++]=128|m>>>12&63),f[_++]=128|m>>>6&63),f[_++]=128|63&m);return f}(h)},o.utf8decode=function(h){return i.nodebuffer?s.transformTo("nodebuffer",h).toString("utf-8"):function(v){var f,m,y,g,_=v.length,x=new Array(2*_);for(f=m=0;f<_;)if((y=v[f++])<128)x[m++]=y;else if(4<(g=u[y]))x[m++]=65533,f+=g-1;else{for(y&=g===2?31:g===3?15:7;1>10&1023,x[m++]=56320|1023&y)}return x.length!==m&&(x.subarray?x=x.subarray(0,m):x.length=m),s.applyFromCharCode(x)}(h=s.transformTo(i.uint8array?"uint8array":"array",h))},s.inherits(d,l),d.prototype.processChunk=function(h){var v=s.transformTo(i.uint8array?"uint8array":"array",h.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var f=v;(v=new Uint8Array(f.length+this.leftOver.length)).set(this.leftOver,0),v.set(f,this.leftOver.length)}else v=this.leftOver.concat(v);this.leftOver=null}var m=function(g,_){var x;for((_=_||g.length)>g.length&&(_=g.length),x=_-1;0<=x&&(192&g[x])==128;)x--;return x<0||x===0?_:x+u[g[x]]>_?x:_}(v),y=v;m!==v.length&&(i.uint8array?(y=v.subarray(0,m),this.leftOver=v.subarray(m,v.length)):(y=v.slice(0,m),this.leftOver=v.slice(m,v.length))),this.push({data:o.utf8decode(y),meta:h.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:o.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},o.Utf8DecodeWorker=d,s.inherits(p,l),p.prototype.processChunk=function(h){this.push({data:o.utf8encode(h.data),meta:h.meta})},o.Utf8EncodeWorker=p},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(n,r,o){var s=n("./support"),i=n("./base64"),a=n("./nodejsUtils"),l=n("./external");function u(f){return f}function c(f,m){for(var y=0;y>8;this.dir=!!(16&this.externalFileAttributes),h==0&&(this.dosPermissions=63&this.externalFileAttributes),h==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var h=s(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=h.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=h.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=h.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=h.readInt(4))}},readExtraFields:function(h){var v,f,m,y=h.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});h.index+4>>6:(h<65536?p[m++]=224|h>>>12:(p[m++]=240|h>>>18,p[m++]=128|h>>>12&63),p[m++]=128|h>>>6&63),p[m++]=128|63&h);return p},o.buf2binstring=function(d){return c(d,d.length)},o.binstring2buf=function(d){for(var p=new s.Buf8(d.length),h=0,v=p.length;h>10&1023,g[v++]=56320|1023&f)}return c(g,v)},o.utf8border=function(d,p){var h;for((p=p||d.length)>d.length&&(p=d.length),h=p-1;0<=h&&(192&d[h])==128;)h--;return h<0||h===0?p:h+l[d[h]]>p?h:p}},{"./common":41}],43:[function(n,r,o){r.exports=function(s,i,a,l){for(var u=65535&s|0,c=s>>>16&65535|0,d=0;a!==0;){for(a-=d=2e3>>1:i>>>1;a[l]=i}return a}();r.exports=function(i,a,l,u){var c=s,d=u+l;i^=-1;for(var p=u;p>>8^c[255&(i^a[p])];return-1^i}},{}],46:[function(n,r,o){var s,i=n("../utils/common"),a=n("./trees"),l=n("./adler32"),u=n("./crc32"),c=n("./messages"),d=0,p=4,h=0,v=-2,f=-1,m=4,y=2,g=8,_=9,x=286,E=30,I=19,C=2*x+1,N=15,j=3,R=258,W=R+j+1,D=42,M=113,w=1,T=2,V=3,A=4;function X(b,K){return b.msg=c[K],K}function $(b){return(b<<1)-(4b.avail_out&&(U=b.avail_out),U!==0&&(i.arraySet(b.output,K.pending_buf,K.pending_out,U,b.next_out),b.next_out+=U,K.pending_out+=U,b.total_out+=U,b.avail_out-=U,K.pending-=U,K.pending===0&&(K.pending_out=0))}function B(b,K){a._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,K),b.block_start=b.strstart,z(b.strm)}function te(b,K){b.pending_buf[b.pending++]=K}function J(b,K){b.pending_buf[b.pending++]=K>>>8&255,b.pending_buf[b.pending++]=255&K}function Z(b,K){var U,O,S=b.max_chain_length,F=b.strstart,q=b.prev_length,G=b.nice_match,L=b.strstart>b.w_size-W?b.strstart-(b.w_size-W):0,Q=b.window,re=b.w_mask,ee=b.prev,se=b.strstart+R,ve=Q[F+q-1],he=Q[F+q];b.prev_length>=b.good_match&&(S>>=2),G>b.lookahead&&(G=b.lookahead);do if(Q[(U=K)+q]===he&&Q[U+q-1]===ve&&Q[U]===Q[F]&&Q[++U]===Q[F+1]){F+=2,U++;do;while(Q[++F]===Q[++U]&&Q[++F]===Q[++U]&&Q[++F]===Q[++U]&&Q[++F]===Q[++U]&&Q[++F]===Q[++U]&&Q[++F]===Q[++U]&&Q[++F]===Q[++U]&&Q[++F]===Q[++U]&&FL&&--S!=0);return q<=b.lookahead?q:b.lookahead}function me(b){var K,U,O,S,F,q,G,L,Q,re,ee=b.w_size;do{if(S=b.window_size-b.lookahead-b.strstart,b.strstart>=ee+(ee-W)){for(i.arraySet(b.window,b.window,ee,ee,0),b.match_start-=ee,b.strstart-=ee,b.block_start-=ee,K=U=b.hash_size;O=b.head[--K],b.head[K]=ee<=O?O-ee:0,--U;);for(K=U=ee;O=b.prev[--K],b.prev[K]=ee<=O?O-ee:0,--U;);S+=ee}if(b.strm.avail_in===0)break;if(q=b.strm,G=b.window,L=b.strstart+b.lookahead,Q=S,re=void 0,re=q.avail_in,Q=j)for(F=b.strstart-b.insert,b.ins_h=b.window[F],b.ins_h=(b.ins_h<=j&&(b.ins_h=(b.ins_h<=j)if(O=a._tr_tally(b,b.strstart-b.match_start,b.match_length-j),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=j){for(b.match_length--;b.strstart++,b.ins_h=(b.ins_h<=j&&(b.ins_h=(b.ins_h<=j&&b.match_length<=b.prev_length){for(S=b.strstart+b.lookahead-j,O=a._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-j),b.lookahead-=b.prev_length-1,b.prev_length-=2;++b.strstart<=S&&(b.ins_h=(b.ins_h<b.pending_buf_size-5&&(U=b.pending_buf_size-5);;){if(b.lookahead<=1){if(me(b),b.lookahead===0&&K===d)return w;if(b.lookahead===0)break}b.strstart+=b.lookahead,b.lookahead=0;var O=b.block_start+U;if((b.strstart===0||b.strstart>=O)&&(b.lookahead=b.strstart-O,b.strstart=O,B(b,!1),b.strm.avail_out===0)||b.strstart-b.block_start>=b.w_size-W&&(B(b,!1),b.strm.avail_out===0))return w}return b.insert=0,K===p?(B(b,!0),b.strm.avail_out===0?V:A):(b.strstart>b.block_start&&(B(b,!1),b.strm.avail_out),w)}),new ue(4,4,8,4,be),new ue(4,5,16,8,be),new ue(4,6,32,32,be),new ue(4,4,16,16,le),new ue(8,16,32,32,le),new ue(8,16,128,128,le),new ue(8,32,128,256,le),new ue(32,128,258,1024,le),new ue(32,258,258,4096,le)],o.deflateInit=function(b,K){return Ce(b,K,g,15,8,0)},o.deflateInit2=Ce,o.deflateReset=pe,o.deflateResetKeep=ye,o.deflateSetHeader=function(b,K){return b&&b.state?b.state.wrap!==2?v:(b.state.gzhead=K,h):v},o.deflate=function(b,K){var U,O,S,F;if(!b||!b.state||5>8&255),te(O,O.gzhead.time>>16&255),te(O,O.gzhead.time>>24&255),te(O,O.level===9?2:2<=O.strategy||O.level<2?4:0),te(O,255&O.gzhead.os),O.gzhead.extra&&O.gzhead.extra.length&&(te(O,255&O.gzhead.extra.length),te(O,O.gzhead.extra.length>>8&255)),O.gzhead.hcrc&&(b.adler=u(b.adler,O.pending_buf,O.pending,0)),O.gzindex=0,O.status=69):(te(O,0),te(O,0),te(O,0),te(O,0),te(O,0),te(O,O.level===9?2:2<=O.strategy||O.level<2?4:0),te(O,3),O.status=M);else{var q=g+(O.w_bits-8<<4)<<8;q|=(2<=O.strategy||O.level<2?0:O.level<6?1:O.level===6?2:3)<<6,O.strstart!==0&&(q|=32),q+=31-q%31,O.status=M,J(O,q),O.strstart!==0&&(J(O,b.adler>>>16),J(O,65535&b.adler)),b.adler=1}if(O.status===69)if(O.gzhead.extra){for(S=O.pending;O.gzindex<(65535&O.gzhead.extra.length)&&(O.pending!==O.pending_buf_size||(O.gzhead.hcrc&&O.pending>S&&(b.adler=u(b.adler,O.pending_buf,O.pending-S,S)),z(b),S=O.pending,O.pending!==O.pending_buf_size));)te(O,255&O.gzhead.extra[O.gzindex]),O.gzindex++;O.gzhead.hcrc&&O.pending>S&&(b.adler=u(b.adler,O.pending_buf,O.pending-S,S)),O.gzindex===O.gzhead.extra.length&&(O.gzindex=0,O.status=73)}else O.status=73;if(O.status===73)if(O.gzhead.name){S=O.pending;do{if(O.pending===O.pending_buf_size&&(O.gzhead.hcrc&&O.pending>S&&(b.adler=u(b.adler,O.pending_buf,O.pending-S,S)),z(b),S=O.pending,O.pending===O.pending_buf_size)){F=1;break}F=O.gzindexS&&(b.adler=u(b.adler,O.pending_buf,O.pending-S,S)),F===0&&(O.gzindex=0,O.status=91)}else O.status=91;if(O.status===91)if(O.gzhead.comment){S=O.pending;do{if(O.pending===O.pending_buf_size&&(O.gzhead.hcrc&&O.pending>S&&(b.adler=u(b.adler,O.pending_buf,O.pending-S,S)),z(b),S=O.pending,O.pending===O.pending_buf_size)){F=1;break}F=O.gzindexS&&(b.adler=u(b.adler,O.pending_buf,O.pending-S,S)),F===0&&(O.status=103)}else O.status=103;if(O.status===103&&(O.gzhead.hcrc?(O.pending+2>O.pending_buf_size&&z(b),O.pending+2<=O.pending_buf_size&&(te(O,255&b.adler),te(O,b.adler>>8&255),b.adler=0,O.status=M)):O.status=M),O.pending!==0){if(z(b),b.avail_out===0)return O.last_flush=-1,h}else if(b.avail_in===0&&$(K)<=$(U)&&K!==p)return X(b,-5);if(O.status===666&&b.avail_in!==0)return X(b,-5);if(b.avail_in!==0||O.lookahead!==0||K!==d&&O.status!==666){var G=O.strategy===2?function(L,Q){for(var re;;){if(L.lookahead===0&&(me(L),L.lookahead===0)){if(Q===d)return w;break}if(L.match_length=0,re=a._tr_tally(L,0,L.window[L.strstart]),L.lookahead--,L.strstart++,re&&(B(L,!1),L.strm.avail_out===0))return w}return L.insert=0,Q===p?(B(L,!0),L.strm.avail_out===0?V:A):L.last_lit&&(B(L,!1),L.strm.avail_out===0)?w:T}(O,K):O.strategy===3?function(L,Q){for(var re,ee,se,ve,he=L.window;;){if(L.lookahead<=R){if(me(L),L.lookahead<=R&&Q===d)return w;if(L.lookahead===0)break}if(L.match_length=0,L.lookahead>=j&&0L.lookahead&&(L.match_length=L.lookahead)}if(L.match_length>=j?(re=a._tr_tally(L,1,L.match_length-j),L.lookahead-=L.match_length,L.strstart+=L.match_length,L.match_length=0):(re=a._tr_tally(L,0,L.window[L.strstart]),L.lookahead--,L.strstart++),re&&(B(L,!1),L.strm.avail_out===0))return w}return L.insert=0,Q===p?(B(L,!0),L.strm.avail_out===0?V:A):L.last_lit&&(B(L,!1),L.strm.avail_out===0)?w:T}(O,K):s[O.level].func(O,K);if(G!==V&&G!==A||(O.status=666),G===w||G===V)return b.avail_out===0&&(O.last_flush=-1),h;if(G===T&&(K===1?a._tr_align(O):K!==5&&(a._tr_stored_block(O,0,0,!1),K===3&&(ne(O.head),O.lookahead===0&&(O.strstart=0,O.block_start=0,O.insert=0))),z(b),b.avail_out===0))return O.last_flush=-1,h}return K!==p?h:O.wrap<=0?1:(O.wrap===2?(te(O,255&b.adler),te(O,b.adler>>8&255),te(O,b.adler>>16&255),te(O,b.adler>>24&255),te(O,255&b.total_in),te(O,b.total_in>>8&255),te(O,b.total_in>>16&255),te(O,b.total_in>>24&255)):(J(O,b.adler>>>16),J(O,65535&b.adler)),z(b),0=U.w_size&&(F===0&&(ne(U.head),U.strstart=0,U.block_start=0,U.insert=0),Q=new i.Buf8(U.w_size),i.arraySet(Q,K,re-U.w_size,U.w_size,0),K=Q,re=U.w_size),q=b.avail_in,G=b.next_in,L=b.input,b.avail_in=re,b.next_in=0,b.input=K,me(U);U.lookahead>=j;){for(O=U.strstart,S=U.lookahead-(j-1);U.ins_h=(U.ins_h<>>=j=N>>>24,_-=j,(j=N>>>16&255)===0)T[c++]=65535&N;else{if(!(16&j)){if(!(64&j)){N=x[(65535&N)+(g&(1<>>=j,_-=j),_<15&&(g+=w[l++]<<_,_+=8,g+=w[l++]<<_,_+=8),N=E[g&C];n:for(;;){if(g>>>=j=N>>>24,_-=j,!(16&(j=N>>>16&255))){if(!(64&j)){N=E[(65535&N)+(g&(1<>>=j,_-=j,(j=c-d)>3,g&=(1<<(_-=R<<3))-1,s.next_in=l,s.next_out=c,s.avail_in=l>>24&255)+(D>>>8&65280)+((65280&D)<<8)+((255&D)<<24)}function g(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function _(D){var M;return D&&D.state?(M=D.state,D.total_in=D.total_out=M.total=0,D.msg="",M.wrap&&(D.adler=1&M.wrap),M.mode=v,M.last=0,M.havedict=0,M.dmax=32768,M.head=null,M.hold=0,M.bits=0,M.lencode=M.lendyn=new s.Buf32(f),M.distcode=M.distdyn=new s.Buf32(m),M.sane=1,M.back=-1,p):h}function x(D){var M;return D&&D.state?((M=D.state).wsize=0,M.whave=0,M.wnext=0,_(D)):h}function E(D,M){var w,T;return D&&D.state?(T=D.state,M<0?(w=0,M=-M):(w=1+(M>>4),M<48&&(M&=15)),M&&(M<8||15=A.wsize?(s.arraySet(A.window,M,w-A.wsize,A.wsize,0),A.wnext=0,A.whave=A.wsize):(T<(V=A.wsize-A.wnext)&&(V=T),s.arraySet(A.window,M,w-T,V,A.wnext),(T-=V)?(s.arraySet(A.window,M,w-T,T,0),A.wnext=T,A.whave=A.wsize):(A.wnext+=V,A.wnext===A.wsize&&(A.wnext=0),A.whave>>8&255,w.check=a(w.check,F,2,0),B=z=0,w.mode=2;break}if(w.flags=0,w.head&&(w.head.done=!1),!(1&w.wrap)||(((255&z)<<8)+(z>>8))%31){D.msg="incorrect header check",w.mode=30;break}if((15&z)!=8){D.msg="unknown compression method",w.mode=30;break}if(B-=4,b=8+(15&(z>>>=4)),w.wbits===0)w.wbits=b;else if(b>w.wbits){D.msg="invalid window size",w.mode=30;break}w.dmax=1<>8&1),512&w.flags&&(F[0]=255&z,F[1]=z>>>8&255,w.check=a(w.check,F,2,0)),B=z=0,w.mode=3;case 3:for(;B<32;){if($===0)break e;$--,z+=T[A++]<>>8&255,F[2]=z>>>16&255,F[3]=z>>>24&255,w.check=a(w.check,F,4,0)),B=z=0,w.mode=4;case 4:for(;B<16;){if($===0)break e;$--,z+=T[A++]<>8),512&w.flags&&(F[0]=255&z,F[1]=z>>>8&255,w.check=a(w.check,F,2,0)),B=z=0,w.mode=5;case 5:if(1024&w.flags){for(;B<16;){if($===0)break e;$--,z+=T[A++]<>>8&255,w.check=a(w.check,F,2,0)),B=z=0}else w.head&&(w.head.extra=null);w.mode=6;case 6:if(1024&w.flags&&($<(Z=w.length)&&(Z=$),Z&&(w.head&&(b=w.head.extra_len-w.length,w.head.extra||(w.head.extra=new Array(w.head.extra_len)),s.arraySet(w.head.extra,T,A,Z,b)),512&w.flags&&(w.check=a(w.check,T,Z,A)),$-=Z,A+=Z,w.length-=Z),w.length))break e;w.length=0,w.mode=7;case 7:if(2048&w.flags){if($===0)break e;for(Z=0;b=T[A+Z++],w.head&&b&&w.length<65536&&(w.head.name+=String.fromCharCode(b)),b&&Z<$;);if(512&w.flags&&(w.check=a(w.check,T,Z,A)),$-=Z,A+=Z,b)break e}else w.head&&(w.head.name=null);w.length=0,w.mode=8;case 8:if(4096&w.flags){if($===0)break e;for(Z=0;b=T[A+Z++],w.head&&b&&w.length<65536&&(w.head.comment+=String.fromCharCode(b)),b&&Z<$;);if(512&w.flags&&(w.check=a(w.check,T,Z,A)),$-=Z,A+=Z,b)break e}else w.head&&(w.head.comment=null);w.mode=9;case 9:if(512&w.flags){for(;B<16;){if($===0)break e;$--,z+=T[A++]<>9&1,w.head.done=!0),D.adler=w.check=0,w.mode=12;break;case 10:for(;B<32;){if($===0)break e;$--,z+=T[A++]<>>=7&B,B-=7&B,w.mode=27;break}for(;B<3;){if($===0)break e;$--,z+=T[A++]<>>=1)){case 0:w.mode=14;break;case 1:if(R(w),w.mode=20,M!==6)break;z>>>=2,B-=2;break e;case 2:w.mode=17;break;case 3:D.msg="invalid block type",w.mode=30}z>>>=2,B-=2;break;case 14:for(z>>>=7&B,B-=7&B;B<32;){if($===0)break e;$--,z+=T[A++]<>>16^65535)){D.msg="invalid stored block lengths",w.mode=30;break}if(w.length=65535&z,B=z=0,w.mode=15,M===6)break e;case 15:w.mode=16;case 16:if(Z=w.length){if($>>=5,B-=5,w.ndist=1+(31&z),z>>>=5,B-=5,w.ncode=4+(15&z),z>>>=4,B-=4,286>>=3,B-=3}for(;w.have<19;)w.lens[q[w.have++]]=0;if(w.lencode=w.lendyn,w.lenbits=7,U={bits:w.lenbits},K=u(0,w.lens,0,19,w.lencode,0,w.work,U),w.lenbits=U.bits,K){D.msg="invalid code lengths set",w.mode=30;break}w.have=0,w.mode=19;case 19:for(;w.have>>16&255,ke=65535&S,!((le=S>>>24)<=B);){if($===0)break e;$--,z+=T[A++]<>>=le,B-=le,w.lens[w.have++]=ke;else{if(ke===16){for(O=le+2;B>>=le,B-=le,w.have===0){D.msg="invalid bit length repeat",w.mode=30;break}b=w.lens[w.have-1],Z=3+(3&z),z>>>=2,B-=2}else if(ke===17){for(O=le+3;B>>=le)),z>>>=3,B-=3}else{for(O=le+7;B>>=le)),z>>>=7,B-=7}if(w.have+Z>w.nlen+w.ndist){D.msg="invalid bit length repeat",w.mode=30;break}for(;Z--;)w.lens[w.have++]=b}}if(w.mode===30)break;if(w.lens[256]===0){D.msg="invalid code -- missing end-of-block",w.mode=30;break}if(w.lenbits=9,U={bits:w.lenbits},K=u(c,w.lens,0,w.nlen,w.lencode,0,w.work,U),w.lenbits=U.bits,K){D.msg="invalid literal/lengths set",w.mode=30;break}if(w.distbits=6,w.distcode=w.distdyn,U={bits:w.distbits},K=u(d,w.lens,w.nlen,w.ndist,w.distcode,0,w.work,U),w.distbits=U.bits,K){D.msg="invalid distances set",w.mode=30;break}if(w.mode=20,M===6)break e;case 20:w.mode=21;case 21:if(6<=$&&258<=ne){D.next_out=X,D.avail_out=ne,D.next_in=A,D.avail_in=$,w.hold=z,w.bits=B,l(D,J),X=D.next_out,V=D.output,ne=D.avail_out,A=D.next_in,T=D.input,$=D.avail_in,z=w.hold,B=w.bits,w.mode===12&&(w.back=-1);break}for(w.back=0;ue=(S=w.lencode[z&(1<>>16&255,ke=65535&S,!((le=S>>>24)<=B);){if($===0)break e;$--,z+=T[A++]<>ye)])>>>16&255,ke=65535&S,!(ye+(le=S>>>24)<=B);){if($===0)break e;$--,z+=T[A++]<>>=ye,B-=ye,w.back+=ye}if(z>>>=le,B-=le,w.back+=le,w.length=ke,ue===0){w.mode=26;break}if(32&ue){w.back=-1,w.mode=12;break}if(64&ue){D.msg="invalid literal/length code",w.mode=30;break}w.extra=15&ue,w.mode=22;case 22:if(w.extra){for(O=w.extra;B>>=w.extra,B-=w.extra,w.back+=w.extra}w.was=w.length,w.mode=23;case 23:for(;ue=(S=w.distcode[z&(1<>>16&255,ke=65535&S,!((le=S>>>24)<=B);){if($===0)break e;$--,z+=T[A++]<>ye)])>>>16&255,ke=65535&S,!(ye+(le=S>>>24)<=B);){if($===0)break e;$--,z+=T[A++]<>>=ye,B-=ye,w.back+=ye}if(z>>>=le,B-=le,w.back+=le,64&ue){D.msg="invalid distance code",w.mode=30;break}w.offset=ke,w.extra=15&ue,w.mode=24;case 24:if(w.extra){for(O=w.extra;B>>=w.extra,B-=w.extra,w.back+=w.extra}if(w.offset>w.dmax){D.msg="invalid distance too far back",w.mode=30;break}w.mode=25;case 25:if(ne===0)break e;if(Z=J-ne,w.offset>Z){if((Z=w.offset-Z)>w.whave&&w.sane){D.msg="invalid distance too far back",w.mode=30;break}me=Z>w.wnext?(Z-=w.wnext,w.wsize-Z):w.wnext-Z,Z>w.length&&(Z=w.length),be=w.window}else be=V,me=X-w.offset,Z=w.length;for(neC?(j=me[be+m[M]],B[te+m[M]]):(j=96,0),g=1<>X)+(_-=g)]=N<<24|j<<16|R|0,_!==0;);for(g=1<>=1;if(g!==0?(z&=g-1,z+=g):z=0,M++,--J[D]==0){if(D===T)break;D=d[p+m[M]]}if(V>>7)]}function te(S,F){S.pending_buf[S.pending++]=255&F,S.pending_buf[S.pending++]=F>>>8&255}function J(S,F,q){S.bi_valid>y-q?(S.bi_buf|=F<>y-S.bi_valid,S.bi_valid+=q-y):(S.bi_buf|=F<>>=1,q<<=1,0<--F;);return q>>>1}function be(S,F,q){var G,L,Q=new Array(m+1),re=0;for(G=1;G<=m;G++)Q[G]=re=re+q[G-1]<<1;for(L=0;L<=F;L++){var ee=S[2*L+1];ee!==0&&(S[2*L]=me(Q[ee]++,ee))}}function le(S){var F;for(F=0;F>1;1<=q;q--)ye(S,Q,q);for(L=se;q=S.heap[1],S.heap[1]=S.heap[S.heap_len--],ye(S,Q,1),G=S.heap[1],S.heap[--S.heap_max]=q,S.heap[--S.heap_max]=G,Q[2*L]=Q[2*q]+Q[2*G],S.depth[L]=(S.depth[q]>=S.depth[G]?S.depth[q]:S.depth[G])+1,Q[2*q+1]=Q[2*G+1]=L,S.heap[1]=L++,ye(S,Q,1),2<=S.heap_len;);S.heap[--S.heap_max]=S.heap[1],function(he,Xe){var _n,it,xn,Pe,Qn,ao,pt=Xe.dyn_tree,qs=Xe.max_code,bl=Xe.stat_desc.static_tree,_l=Xe.stat_desc.has_stree,xl=Xe.stat_desc.extra_bits,Gs=Xe.stat_desc.extra_base,kn=Xe.stat_desc.max_length,er=0;for(Pe=0;Pe<=m;Pe++)he.bl_count[Pe]=0;for(pt[2*he.heap[he.heap_max]+1]=0,_n=he.heap_max+1;_n>=7;L>>=1)if(1&ve&&ee.dyn_ltree[2*se]!==0)return i;if(ee.dyn_ltree[18]!==0||ee.dyn_ltree[20]!==0||ee.dyn_ltree[26]!==0)return a;for(se=32;se>>3,(Q=S.static_len+3+7>>>3)<=L&&(L=Q)):L=Q=q+5,q+4<=L&&F!==-1?O(S,F,q,G):S.strategy===4||Q===L?(J(S,2+(G?1:0),3),pe(S,W,D)):(J(S,4+(G?1:0),3),function(ee,se,ve,he){var Xe;for(J(ee,se-257,5),J(ee,ve-1,5),J(ee,he-4,4),Xe=0;Xe>>8&255,S.pending_buf[S.d_buf+2*S.last_lit+1]=255&F,S.pending_buf[S.l_buf+S.last_lit]=255&q,S.last_lit++,F===0?S.dyn_ltree[2*q]++:(S.matches++,F--,S.dyn_ltree[2*(w[q]+d+1)]++,S.dyn_dtree[2*B(F)]++),S.last_lit===S.lit_bufsize-1},o._tr_align=function(S){J(S,2,3),Z(S,_,W),function(F){F.bi_valid===16?(te(F,F.bi_buf),F.bi_buf=0,F.bi_valid=0):8<=F.bi_valid&&(F.pending_buf[F.pending++]=255&F.bi_buf,F.bi_buf>>=8,F.bi_valid-=8)}(S)}},{"../utils/common":41}],53:[function(n,r,o){r.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(n,r,o){(function(s){(function(i,a){if(!i.setImmediate){var l,u,c,d,p=1,h={},v=!1,f=i.document,m=Object.getPrototypeOf&&Object.getPrototypeOf(i);m=m&&m.setTimeout?m:i,l={}.toString.call(i.process)==="[object process]"?function(x){process.nextTick(function(){g(x)})}:function(){if(i.postMessage&&!i.importScripts){var x=!0,E=i.onmessage;return i.onmessage=function(){x=!1},i.postMessage("","*"),i.onmessage=E,x}}()?(d="setImmediate$"+Math.random()+"$",i.addEventListener?i.addEventListener("message",_,!1):i.attachEvent("onmessage",_),function(x){i.postMessage(d+x,"*")}):i.MessageChannel?((c=new MessageChannel).port1.onmessage=function(x){g(x.data)},function(x){c.port2.postMessage(x)}):f&&"onreadystatechange"in f.createElement("script")?(u=f.documentElement,function(x){var E=f.createElement("script");E.onreadystatechange=function(){g(x),E.onreadystatechange=null,u.removeChild(E),E=null},u.appendChild(E)}):function(x){setTimeout(g,0,x)},m.setImmediate=function(x){typeof x!="function"&&(x=new Function(""+x));for(var E=new Array(arguments.length-1),I=0;I"u"?s===void 0?this:s:self)}).call(this,typeof tr<"u"?tr:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(wl);var jp=wl.exports;const Pp=Da(jp),Ap=async t=>{const e=`ComfyUI workspace workflows ${ll(Date.now())}`,n=new Pp,r=await(Y==null?void 0:Y.getSetting("twoWaySync"));for(const o of t){let s;r?s=o.parentFolderID??"":s=await yh(o.parentFolderID??null).then(async a=>Ft(a??""));const i=n.folder(s);i==null||i.file(`${o.name}.json`,o.json)}n.generateAsync({type:"blob"}).then(function(o){const s=document.createElement("a");s.href=window.URL.createObjectURL(o),s.download=`${e}.zip`,document.body.appendChild(s),s.click(),document.body.removeChild(s)})};function Np({myWorkflowsDir:t}){return k.jsxs($e,{gap:3,children:[k.jsx(un,{size:"md",children:"🦄 Upgrade to 2.0 - enable two way sync!"}),k.jsx("p",{children:"Your workflows will be synced to and from path:"}),k.jsx("p",{children:k.jsx("b",{children:t})}),k.jsxs("p",{children:["You can manually put workflow files into this folder using File Explorer to sync them with your workspace. You can change this path anytime in Settings ",">"," Workspace Save Directory"]}),k.jsxs("p",{children:[k.jsx("b",{children:"Please download all your workflows before enabling two way sync as a backup!"})," ","So you can manually import some workflows into your workspace in case something unexpected happens."]}),k.jsx(Te,{colorScheme:"teal",variant:"outline",width:"fit-content",onClick:async()=>{const e=await(H==null?void 0:H.listAll());Ap(e??[])},children:"👉 Download All My Workflows"})]})}const Fp=Ra.lazy(()=>Tt(()=>import("./RecentFilesDrawer-h9_pZtx6.js"),__vite__mapDeps([14,1,8,3,13,15,12,4]))),Rp=Ra.lazy(()=>Tt(()=>import("./GalleryModal-xU6CfB8I.js"),__vite__mapDeps([16,1,15,12,9,8,3,2])));function Tp(){const[t,e]=P.useState(null),[n,r]=P.useState("root"),[o,s]=P.useState(!0),[i,a]=P.useState(null),l=P.useRef(null),[u,c]=P.useState(!1),d=P.useRef(null),{showDialog:p}=Fa(),[h,v]=P.useState(!1);P.useRef(!1);const f=Ma(),[m,y]=Dp(null),g=P.useCallback(async(w=!1)=>{var V,A;const T=H==null?void 0:H.curWorkflow;if(T){if(!w&&((V=H==null?void 0:H.curWorkflow)!=null&&V.saveLock)){f({title:"The workflow is locked and cannot be saved",status:"warning",duration:3e3});return}const X=JSON.stringify(we.graph.serialize());await Promise.all([H==null?void 0:H.updateFlow(T.id,{json:X}),Ge==null?void 0:Ge.create({workflowID:T.id,json:X,isAutoSave:!1})]),(A=Y==null?void 0:Y.settings)!=null&&A.autoSave&&f({title:"Saved",status:"success",duration:1e3,isClosable:!0}),c(!1)}},[]),_=async()=>{var T,V,A;if((T=Y==null?void 0:Y.settings)!=null&&T.autoSave){alert("You cannot discard unsaved changes when auto save is enabled");return}if(confirm("Are you sure you want to discard unsaved changes? This will revert current workflow to your last saved version. You will lose all changes made since your last save.")){const X=(V=H==null?void 0:H.curWorkflow)==null?void 0:V.id;if(X==null)return;const $=(A=await(H==null?void 0:H.get(X)))==null?void 0:A.json;$?(H==null||H.updateCurWorkflow({...H.curWorkflow,json:$}),await we.loadGraphData(JSON.parse($)),c(!1)):alert("Error: No last saved version found")}},x=w=>{const T=(w==null?void 0:w.id)??null;if(H==null||H.updateCurWorkflow(w),l.current=T,a(T),e((w==null?void 0:w.name)??""),T==null){document.title="ComfyUI",window.location.hash="",localStorage.removeItem("curFlowID");return}if(Ca()){const V=cl(T);window.location.hash=V,document.title=w.name+" - ComfyUI"}else localStorage.setItem("curFlowID",T),document.title="ComfyUI - "+w.name;w&&(H==null||H.updateLastOpenedTime(w.id))},E=async()=>{var V,A;localStorage.removeItem("workspace"),localStorage.removeItem("comfyspace");try{await Dh()}catch(X){console.error("error loading db",X)}s(!1);const w=Ca();if(w==null){const X=localStorage.getItem("workflow");if(X){const ne=(A=(V=JSON.parse(X).extra)==null?void 0:V[We])==null?void 0:A.id;if(ne){const z=await(H==null?void 0:H.get(ne));z&&x(z),z&&z.json!=X&&c(!0)}}}else I(w);Ee("/workspace/deduplicate_workflow_ids"),!await(Y==null?void 0:Y.getSetting("twoWaySync"))&&ie.cache.get(_o).then(async X=>{if((X==null?void 0:X.value)!=="true"){if(await ie.workflows.count()==0){await(Y==null?void 0:Y.upsert({twoWaySync:!0})),await ie.cache.put({id:_o,value:"true"});return}const ne=await(Y==null?void 0:Y.getSetting("myWorkflowsDir"));p(k.jsx(Np,{myWorkflowsDir:ne??"undefined"}),[{label:"I have downloaded all my workflows and ready to enable",onClick:async()=>{await(Y==null?void 0:Y.upsert({twoWaySync:!0})),await(Y==null?void 0:Y.getSetting("twoWaySync"))&&(ie.cache.put({id:_o,value:"true"}),location.reload())},colorScheme:"red"}],{closeOnOverlayClick:!1})}})},I=async(w,T)=>{if(we.graph==null)return;const V=await(H==null?void 0:H.get(w));if(V==null){alert("Error: Workflow not found! id: "+w),x(null);return}const A=T?await(ge==null?void 0:ge.get(T)):null;we.ui.dialog.close(),A?(y(A),x({...V,json:A.json}),we.loadGraphData(JSON.parse(A.json))):(x(V),y(null),we.loadGraphData(JSON.parse(V.json))),r("root"),u&&c(!1)},C=async(w,T,V=!1)=>{var A;if(w===null){x(null),we.graph.clear();return}if(!u||V||(A=Y==null?void 0:Y.settings)!=null&&A.autoSave||(H==null?void 0:H.curWorkflow)==null){I(w,T);return}N(w)},N=async w=>{var V;const T=[w?{label:"Open in new tab",icon:k.jsx(pl,{}),onClick:()=>{hh(w)}}:null,{label:"Save",colorScheme:"teal",onClick:async()=>{await g(),w&&I(w)}}];T.push({label:"Discard",colorScheme:"red",onClick:async()=>{w&&I(w)}}),p(`Please save or discard your changes to "${(V=H==null?void 0:H.curWorkflow)==null?void 0:V.name}" before leaving, or your changes will be lost.`,T)},j=async w=>{const T=(w==null?void 0:w.json)??JSON.stringify(ul),V=await(H==null?void 0:H.createFlow({json:T,name:w==null?void 0:w.name}));V&&await C(V.id),r("root")},R=async(w,T=!1)=>{const V=w.split("/").pop()??w;T?g():j({name:V});const A=await fetch(fh(w)),X=await A.blob(),$=new File([X],V,{type:A.headers.get("Content-Type")||""});await we.handleFile($),r("root")},W=async(w,T)=>{const V=await(H==null?void 0:H.get(w));if(V==null)return;const A=await(H==null?void 0:H.createFlow({json:V.json,name:T||V.name,parentFolderID:V.parentFolderID,tags:V.tags}));A&&await C(A.id)},D=P.useCallback(w=>{if(l.current==null)return;let T=w.filename;w.subfolder!=null&&w.subfolder!==""&&(T=w.subfolder+"/"+T),qt==null||qt.create({workflowID:l.current,localPath:T})},[]),M=P.useCallback(()=>{r("root")},[]);return P.useEffect(()=>{E(),v(!0);const w=T=>{var V,A,X,$,ne,z;(X=(A=(V=T.detail)==null?void 0:V.output)==null?void 0:A.images)==null||X.forEach(B=>{B.type==="output"&&D(B)}),(z=(ne=($=T.detail)==null?void 0:$.output)==null?void 0:ne.gifs)==null||z.forEach(B=>{B.type==="output"&&D(B)})};return Or.addEventListener("executed",w),()=>{window.removeEventListener("executed",w)}},[]),o?null:k.jsx(at.Provider,{value:{curFlowID:i,onDuplicateWorkflow:W,loadWorkflowID:C,discardUnsavedChanges:_,saveCurWorkflow:g,isDirty:u,setIsDirty:c,loadNewWorkflow:j,loadFilePath:R,setRoute:r,route:n,curVersion:m,setCurVersion:y,setCurFlowIDAndName:x},children:k.jsx("div",{ref:d,className:"workspace_manager",children:k.jsxs(Aa,{containerRef:d,children:[k.jsxs(jt,{style:{position:"absolute",top:0,right:0,left:0},zIndex:mh,draggable:!1,children:[k.jsx(Cp,{curFlowName:t,setCurFlowName:e}),h&&n==="recentFlows"&&k.jsx(P.Suspense,{children:k.jsx(Fp,{onClose:M,onClickNewFlow:()=>{j(),r("root")}})}),n==="gallery"&&k.jsx(P.Suspense,{children:k.jsx(Rp,{onclose:()=>r("root")})})]}),k.jsx(Sp,{})]})})})}const dm=Object.freeze(Object.defineProperty({__proto__:null,default:Tp},Symbol.toStringTag,{value:"Module"}));export{hh as $,zh as A,jt as B,Gp as C,tp as D,ah as E,Ut as F,Wh as G,ot as H,cn as I,bh as J,Le as K,Jr as L,yi as M,Qr as N,Xr as O,Vh as P,Gh as Q,rm as R,Ed as S,mn as T,ul as U,Qp as V,xr as W,Oh as X,qp as Y,at as Z,pl as _,Wp as a,ml as a0,Ee as a1,qt as a2,ll as a3,ut as a4,we as a5,sc as a6,mh as a7,Kp as a8,kr as a9,vi as aA,xi as aB,bi as aC,sm as aD,Dp as aE,Sh as aF,em as aG,om as aH,$s as aI,gs as aJ,lm as aK,Qa as aL,up as aM,ge as aN,im as aO,cm as aP,mp as aQ,um as aR,oc as aS,dm as aT,Zp as aa,La as ab,hc as ac,Jp as ad,Wa as ae,Ch as af,un as ag,on as ah,pc as ai,We as aj,Xp as ak,Yp as al,Ge as am,Kl as an,Zn as ao,Ps as ap,ie as aq,am as ar,uf as as,tm as at,nm as au,$p as av,Or as aw,Hp as ax,Nc as ay,gi as az,zp as b,Lp as c,Ae as d,Jh as e,Ma as f,$e as g,wt as h,kt as i,gn as j,Y as k,Np as l,Fc as m,cf as n,Up as o,Vp as p,Oo as q,Ds as r,js as s,Cr as t,to as u,Ct as v,Lh as w,H as x,ep as y,Ap as z}; -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["workspace_web/ShareDialog-3XWt4eF0.js","workspace_web/input.js","workspace_web/chunk-VTV6N5LE-_EaL4yE7.js","workspace_web/chunk-7D6N5TE5-lFR77IBa.js","workspace_web/IconCopy-D2k-9fMf.js","workspace_web/AppIsDirtyEventListener-z5bVS2B2.js","workspace_web/useDebounceFn-ld478fd0.js","workspace_web/ModelManagerTopbar-vr3vytmQ.js","workspace_web/chunk-JARCRF6W-OjDz07lE.js","workspace_web/chunk-3RSXBRAN-LXNJ9qB5.js","workspace_web/assets/ModelManagerTopbar--iv3sdjQ.css","workspace_web/SpotlightSearch-wRJMVnPo.js","workspace_web/IconSearch-3Gq-3maw.js","workspace_web/chunk-NTCQBYKE-a6jE7X_b.js","workspace_web/RecentFilesDrawer-h9_pZtx6.js","workspace_web/MediaPreview-gKBl9R3H.js","workspace_web/GalleryModal-xU6CfB8I.js"] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} \ No newline at end of file diff --git a/dist/workspace_web/AppIsDirtyEventListener-z5bVS2B2.js b/dist/workspace_web/AppIsDirtyEventListener-4QIATPDH.js similarity index 68% rename from dist/workspace_web/AppIsDirtyEventListener-z5bVS2B2.js rename to dist/workspace_web/AppIsDirtyEventListener-4QIATPDH.js index bae697d..8b95b9e 100644 --- a/dist/workspace_web/AppIsDirtyEventListener-z5bVS2B2.js +++ b/dist/workspace_web/AppIsDirtyEventListener-4QIATPDH.js @@ -1 +1 @@ -import{r as u,j as E}from"./input.js";import{Z as x,a5 as r,aj as C,x as a,i as W,T as j,E as d,ak as A,al as L,k as h,am as R}from"./App-eQybp91e.js";import{u as O}from"./useDebounceFn-ld478fd0.js";function M(){const{isDirty:p,setIsDirty:g,setRoute:v,saveCurWorkflow:T,setCurFlowIDAndName:b}=u.useContext(x),w=u.useRef(p),[S,D]=u.useState(!1),k=u.useRef(null);u.useEffect(()=>{w.current=p},[p]),u.useEffect(()=>{var n,i;const c=e=>{var s;if(document.visibilityState==="hidden")return;const t=L(e);if(t)switch(t===d.openSpotlightSearch&&e.preventDefault(),window.dispatchEvent(new CustomEvent(A,{detail:{shortcutType:t}})),t){case d.SAVE:T();break;case d.SAVE_AS:v("saveAsModal");break;case d.openSpotlightSearch:v("spotlightSearch");break}else(s=e.target)!=null&&s.matches("input, textarea")&&Object.keys(r.canvas.selected_nodes??{}).length&&m()},o=r.graph.onConfigure;return r.graph.onConfigure=function(){o==null||o.apply(this,arguments),setTimeout(()=>{var t,s,l,f;const e=(s=(t=r.graph.extra)==null?void 0:t[C])==null?void 0:s.id;(e==null||e!=((f=(l=a)==null?void 0:l.curWorkflow)==null?void 0:f.id))&&b(null)},500)},document.addEventListener("click",e=>{Object.keys(r.canvas.selected_nodes??{}).length&&(r.canvas.node_over!=null||r.canvas.node_capturing_input!=null||r.canvas.node_widget!=null)&&m()}),document.addEventListener("keydown",c),(i=(n=h)==null?void 0:n.settings)!=null&&i.autoSave&&h.settings.autoSaveDuration&&(k.current=setInterval(()=>{_()},h.settings.autoSaveDuration*1e3)),()=>{document.removeEventListener("keydown",c),k.current&&clearInterval(k.current)}},[]);const _=async()=>{var o,n,i,e,t,s;if((n=(o=a)==null?void 0:o.curWorkflow)!=null&&n.saveLock||!((e=(i=a)==null?void 0:i.curWorkflow)!=null&&e.id)||!w.current)return;const c=JSON.stringify(r.graph.serialize());await((t=a)==null?void 0:t.updateFlow(a.curWorkflow.id,{json:c})),(s=R)==null||s.create({workflowID:a.curWorkflow.id,isAutoSave:!0,json:c}),g(!1)},I=async()=>{var o,n,i,e,t,s,l,f,y;if((n=(o=a)==null?void 0:o.curWorkflow)!=null&&n.saveLock||w.current)return;const c=r.graph.serialize();JSON.stringify(c)!==((e=(i=a)==null?void 0:i.curWorkflow)==null?void 0:e.json)&&(g(!0),(s=(t=h)==null?void 0:t.settings)!=null&&s.autoSave&&((f=(l=a)==null?void 0:l.curWorkflow)!=null&&f.id)&&!S&&(await((y=a)==null?void 0:y.latestVersionCheck())||D(!0)))},[m,N]=O(I,900);return S?E.jsx(W,{label:"This workflow was changed by another tab, so you are not working on the latest version. Please refresh page to see the latest version of this workflow.",children:E.jsx(j,{colorScheme:"yellow",children:"⚠️Outdated version"})}):null}export{M as default}; +import{r as u,j as E}from"./input.js";import{X as x,a3 as r,af as C,x as a,i as W,T as A,E as d,ag as L,ah as R,k as h,ai as j}from"./App-Pi18TWng.js";import{u as O}from"./useDebounceFn-ld478fd0.js";function M(){const{isDirty:p,setIsDirty:k,setRoute:v,saveCurWorkflow:T,setCurFlowIDAndName:b}=u.useContext(x),w=u.useRef(p),[S,D]=u.useState(!1),g=u.useRef(null);u.useEffect(()=>{w.current=p},[p]),u.useEffect(()=>{var n,i;const c=e=>{var s;if(document.visibilityState==="hidden")return;const t=R(e);if(t)switch(t===d.openSpotlightSearch&&e.preventDefault(),window.dispatchEvent(new CustomEvent(L,{detail:{shortcutType:t}})),t){case d.SAVE:T();break;case d.SAVE_AS:v("saveAsModal");break;case d.openSpotlightSearch:v("spotlightSearch");break}else(s=e.target)!=null&&s.matches("input, textarea")&&Object.keys(r.canvas.selected_nodes??{}).length&&m()},o=r.graph.onConfigure;return r.graph.onConfigure=function(){o==null||o.apply(this,arguments),setTimeout(()=>{var t,s,l,f;const e=(s=(t=r.graph.extra)==null?void 0:t[C])==null?void 0:s.id;(e==null||e!=((f=(l=a)==null?void 0:l.curWorkflow)==null?void 0:f.id))&&b(null)},500)},document.addEventListener("click",e=>{Object.keys(r.canvas.selected_nodes??{}).length&&(r.canvas.node_over!=null||r.canvas.node_capturing_input!=null||r.canvas.node_widget!=null)&&m()}),document.addEventListener("keydown",c),(i=(n=h)==null?void 0:n.settings)!=null&&i.autoSave&&h.settings.autoSaveDuration&&(g.current=setInterval(()=>{_()},h.settings.autoSaveDuration*1e3)),()=>{document.removeEventListener("keydown",c),g.current&&clearInterval(g.current)}},[]);const _=async()=>{var o,n,i,e,t,s;if((n=(o=a)==null?void 0:o.curWorkflow)!=null&&n.saveLock||!((e=(i=a)==null?void 0:i.curWorkflow)!=null&&e.id)||!w.current)return;const c=JSON.stringify(r.graph.serialize());await((t=a)==null?void 0:t.updateFlow(a.curWorkflow.id,{json:c})),(s=j)==null||s.create({workflowID:a.curWorkflow.id,isAutoSave:!0,json:c}),k(!1)},I=async()=>{var o,n,i,e,t,s,l,f,y;if((n=(o=a)==null?void 0:o.curWorkflow)!=null&&n.saveLock||w.current)return;const c=r.graph.serialize();JSON.stringify(c)!==((e=(i=a)==null?void 0:i.curWorkflow)==null?void 0:e.json)&&(k(!0),(s=(t=h)==null?void 0:t.settings)!=null&&s.autoSave&&((f=(l=a)==null?void 0:l.curWorkflow)!=null&&f.id)&&!S&&(await((y=a)==null?void 0:y.latestVersionCheck())||D(!0)))},[m,N]=O(I,900);return S?E.jsx(W,{label:"This workflow was changed by another tab, so you are not working on the latest version. Please refresh page to see the latest version of this workflow.",children:E.jsx(A,{colorScheme:"yellow",children:"⚠️Outdated version"})}):null}export{M as default}; diff --git a/dist/workspace_web/GalleryModal--OOrrwTO.js b/dist/workspace_web/GalleryModal--OOrrwTO.js new file mode 100644 index 0000000..ae099d4 --- /dev/null +++ b/dist/workspace_web/GalleryModal--OOrrwTO.js @@ -0,0 +1 @@ +import{r as d,d as Se,x as Ht,m as be,b as it,f as O,k as Kt,o as ct,E as Wt,j as r,g as L,n as Yt,e as Xt,V as ut,h as dt,M as Zt,N as qt,O as Jt,Q as Qt,R as en,S as tn}from"./input.js";import{a9 as nn,aa as sn,d as Re,F as m,ab as rn,I as M,j as on,g as Ee,B as ht,h as W,X as oe,a3 as tt,x as R,H as Y,i as A,w as ft,a1 as xt,e as pt,a0 as F,ac as an,y as ln}from"./App-Pi18TWng.js";import{c as je,p as cn,r as nt,v as st,I as un,i as dn,b as hn,d as fn,g as xn,N as pn,a as gn,e as mn,f as vn,h as yn,M as gt,u as wn,S as Sn}from"./MediaPreview-AxH1rOBH.js";import{I as bn}from"./chunk-7D6N5TE5-ZfhYDM9i.js";import{S as jn}from"./chunk-3RSXBRAN-1feEpIXZ.js";import{C as Ae,G as kn}from"./chunk-JARCRF6W-sDjzfEGl.js";import{S as rt,L as Ne}from"./chunk-VTV6N5LE-K9rVd8eY.js";import"./IconSearch-xcUfhAk-.js";const mt=1/60*1e3,Pn=typeof performance<"u"?()=>performance.now():()=>Date.now(),vt=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(Pn()),mt);function Cn(e){let t=[],s=[],n=0,o=!1,a=!1;const l=new WeakSet,c={schedule:(i,u=!1,p=!1)=>{const f=p&&o,v=f?t:s;return u&&l.add(i),v.indexOf(i)===-1&&(v.push(i),f&&o&&(n=t.length)),i},cancel:i=>{const u=s.indexOf(i);u!==-1&&s.splice(u,1),l.delete(i)},process:i=>{if(o){a=!0;return}if(o=!0,[t,s]=[s,t],s.length=0,n=t.length,n)for(let u=0;u(e[t]=Cn(()=>X=!0),e),{}),Tn=Z.reduce((e,t)=>{const s=ae[t];return e[t]=(n,o=!1,a=!1)=>(X||Mn(),s.schedule(n,o,a)),e},{}),En=Z.reduce((e,t)=>(e[t]=ae[t].cancel,e),{});Z.reduce((e,t)=>(e[t]=()=>ae[t].process(B),e),{});const Nn=e=>ae[e].process(B),yt=e=>{X=!1,B.delta=Me?mt:Math.max(Math.min(e-B.timestamp,In),1),B.timestamp=e,_e=!0,Z.forEach(Nn),_e=!1,X&&(Me=!1,vt(yt))},Mn=()=>{X=!0,Me=!0,_e||vt(yt)},ot=()=>B;var V=e=>e?"":void 0,ke=e=>e?!0:void 0,q=(...e)=>e.filter(Boolean).join(" ");function Pe(...e){return function(s){e.some(n=>(n==null||n(s),s==null?void 0:s.defaultPrevented))}}function Q(e){const{orientation:t,vertical:s,horizontal:n}=e;return t==="vertical"?s:n}var te={width:0,height:0},ee=e=>e||te;function _n(e){const{orientation:t,thumbPercents:s,thumbRects:n,isReversed:o}=e,a=y=>{var w;const E=(w=n[y])!=null?w:te;return{position:"absolute",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none",...Q({orientation:t,vertical:{bottom:`calc(${s[y]}% - ${E.height/2}px)`},horizontal:{left:`calc(${s[y]}% - ${E.width/2}px)`}})}},l=t==="vertical"?n.reduce((y,w)=>ee(y).height>ee(w).height?y:w,te):n.reduce((y,w)=>ee(y).width>ee(w).width?y:w,te),c={position:"relative",touchAction:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",userSelect:"none",outline:0,...Q({orientation:t,vertical:l?{paddingLeft:l.width/2,paddingRight:l.width/2}:{},horizontal:l?{paddingTop:l.height/2,paddingBottom:l.height/2}:{}})},i={position:"absolute",...Q({orientation:t,vertical:{left:"50%",transform:"translateX(-50%)",height:"100%"},horizontal:{top:"50%",transform:"translateY(-50%)",width:"100%"}})},u=s.length===1,p=[0,o?100-s[0]:s[0]],f=u?p:s;let v=f[0];!u&&o&&(v=100-v);const g=Math.abs(f[f.length-1]-f[0]),I={...i,...Q({orientation:t,vertical:o?{height:`${g}%`,top:`${v}%`}:{height:`${g}%`,bottom:`${v}%`},horizontal:o?{width:`${g}%`,right:`${v}%`}:{width:`${g}%`,left:`${v}%`}})};return{trackStyle:i,innerTrackStyle:I,rootStyle:c,getThumbStyle:a}}function Dn(e){const{isReversed:t,direction:s,orientation:n}=e;return s==="ltr"||n==="vertical"?t:!t}function zn(e,t,s,n){return e.addEventListener(t,s,n),()=>{e.removeEventListener(t,s,n)}}function Rn(e){const t=Fn(e);return typeof t.PointerEvent<"u"&&e instanceof t.PointerEvent?e.pointerType==="mouse":e instanceof t.MouseEvent}function wt(e){return!!e.touches}function An(e){return wt(e)&&e.touches.length>1}function Fn(e){var t;return(t=e.view)!=null?t:window}function $n(e,t="page"){const s=e.touches[0]||e.changedTouches[0];return{x:s[`${t}X`],y:s[`${t}Y`]}}function Vn(e,t="page"){return{x:e[`${t}X`],y:e[`${t}Y`]}}function St(e,t="page"){return wt(e)?$n(e,t):Vn(e,t)}function Bn(e){return t=>{const s=Rn(t);(!s||s&&t.button===0)&&e(t)}}function On(e,t=!1){function s(o){e(o,{point:St(o)})}return t?Bn(s):s}function ne(e,t,s,n){return zn(e,t,On(s,t==="pointerdown"),n)}var Ln=Object.defineProperty,Gn=(e,t,s)=>t in e?Ln(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,T=(e,t,s)=>(Gn(e,typeof t!="symbol"?t+"":t,s),s),Un=class{constructor(e,t,s){T(this,"history",[]),T(this,"startEvent",null),T(this,"lastEvent",null),T(this,"lastEventInfo",null),T(this,"handlers",{}),T(this,"removeListeners",()=>{}),T(this,"threshold",3),T(this,"win"),T(this,"updatePoint",()=>{if(!(this.lastEvent&&this.lastEventInfo))return;const c=Ce(this.lastEventInfo,this.history),i=this.startEvent!==null,u=Yn(c.offset,{x:0,y:0})>=this.threshold;if(!i&&!u)return;const{timestamp:p}=ot();this.history.push({...c.point,timestamp:p});const{onStart:f,onMove:v}=this.handlers;i||(f==null||f(this.lastEvent,c),this.startEvent=this.lastEvent),v==null||v(this.lastEvent,c)}),T(this,"onPointerMove",(c,i)=>{this.lastEvent=c,this.lastEventInfo=i,Tn.update(this.updatePoint,!0)}),T(this,"onPointerUp",(c,i)=>{const u=Ce(i,this.history),{onEnd:p,onSessionEnd:f}=this.handlers;f==null||f(c,u),this.end(),!(!p||!this.startEvent)&&(p==null||p(c,u))});var n;if(this.win=(n=e.view)!=null?n:window,An(e))return;this.handlers=t,s&&(this.threshold=s),e.stopPropagation(),e.preventDefault();const o={point:St(e)},{timestamp:a}=ot();this.history=[{...o.point,timestamp:a}];const{onSessionStart:l}=t;l==null||l(e,Ce(o,this.history)),this.removeListeners=Wn(ne(this.win,"pointermove",this.onPointerMove),ne(this.win,"pointerup",this.onPointerUp),ne(this.win,"pointercancel",this.onPointerUp))}updateHandlers(e){this.handlers=e}end(){var e;(e=this.removeListeners)==null||e.call(this),En.update(this.updatePoint)}};function at(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ce(e,t){return{point:e.point,delta:at(e.point,t[t.length-1]),offset:at(e.point,t[0]),velocity:Kn(t,.1)}}var Hn=e=>e*1e3;function Kn(e,t){if(e.length<2)return{x:0,y:0};let s=e.length-1,n=null;const o=e[e.length-1];for(;s>=0&&(n=e[s],!(o.timestamp-n.timestamp>Hn(t)));)s--;if(!n)return{x:0,y:0};const a=(o.timestamp-n.timestamp)/1e3;if(a===0)return{x:0,y:0};const l={x:(o.x-n.x)/a,y:(o.y-n.y)/a};return l.x===1/0&&(l.x=0),l.y===1/0&&(l.y=0),l}function Wn(...e){return t=>e.reduce((s,n)=>n(s),t)}function Ie(e,t){return Math.abs(e-t)}function lt(e){return"x"in e&&"y"in e}function Yn(e,t){if(typeof e=="number"&&typeof t=="number")return Ie(e,t);if(lt(e)&<(t)){const s=Ie(e.x,t.x),n=Ie(e.y,t.y);return Math.sqrt(s**2+n**2)}return 0}function bt(e){const t=d.useRef(null);return t.current=e,t}function Xn(e,t){const{onPan:s,onPanStart:n,onPanEnd:o,onPanSessionStart:a,onPanSessionEnd:l,threshold:c}=t,i=!!(s||n||o||a||l),u=d.useRef(null),p=bt({onSessionStart:a,onSessionEnd:l,onStart:n,onMove:s,onEnd(f,v){u.current=null,o==null||o(f,v)}});d.useEffect(()=>{var f;(f=u.current)==null||f.updateHandlers(p.current)}),d.useEffect(()=>{const f=e.current;if(!f||!i)return;function v(g){u.current=new Un(g,p.current,c)}return ne(f,"pointerdown",v)},[e,i,p,c]),d.useEffect(()=>()=>{var f;(f=u.current)==null||f.end(),u.current=null},[])}function Zn(e,t){if(!e){t(void 0);return}t({width:e.offsetWidth,height:e.offsetHeight});const s=e.ownerDocument.defaultView??window,n=new s.ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const[a]=o;let l,c;if("borderBoxSize"in a){const i=a.borderBoxSize,u=Array.isArray(i)?i[0]:i;l=u.inlineSize,c=u.blockSize}else l=e.offsetWidth,c=e.offsetHeight;t({width:l,height:c})});return n.observe(e,{box:"border-box"}),()=>n.unobserve(e)}var qn=globalThis!=null&&globalThis.document?d.useLayoutEffect:d.useEffect;function Jn(e,t){var s,n;if(!e||!e.parentElement)return;const o=(n=(s=e.ownerDocument)==null?void 0:s.defaultView)!=null?n:window,a=new o.MutationObserver(()=>{t()});return a.observe(e.parentElement,{childList:!0}),()=>{a.disconnect()}}function Qn({getNodes:e,observeMutation:t=!0}){const[s,n]=d.useState([]),[o,a]=d.useState(0);return qn(()=>{const l=e(),c=l.map((i,u)=>Zn(i,p=>{n(f=>[...f.slice(0,u),p,...f.slice(u+1)])}));if(t){const i=l[0];c.push(Jn(i,()=>{a(u=>u+1)}))}return()=>{c.forEach(i=>{i==null||i()})}},[o]),s}function es(e){return typeof e=="object"&&e!==null&&"current"in e}function ts(e){const[t]=Qn({observeMutation:!1,getNodes(){return[es(e)?e.current:e]}});return t}function ns(e){var t;const{min:s=0,max:n=100,onChange:o,value:a,defaultValue:l,isReversed:c,direction:i="ltr",orientation:u="horizontal",id:p,isDisabled:f,isReadOnly:v,onChangeStart:g,onChangeEnd:I,step:y=1,getAriaValueText:w,"aria-valuetext":E,"aria-label":$,"aria-labelledby":b,name:_,focusThumbOnChange:Mt=!0,...Fe}=e,$e=Se(g),G=Se(I),Ve=Se(w),C=Dn({isReversed:c,direction:i,orientation:u}),[_t,de]=nn({value:a,defaultValue:l??rs(s,n),onChange:o}),[he,Be]=d.useState(!1),[fe,Oe]=d.useState(!1),xe=!(f||v),pe=(n-s)/10,U=y||(n-s)/100,S=je(_t,s,n),Dt=n-S+s,Le=st(C?Dt:S,s,n),J=u==="vertical",j=bt({min:s,max:n,step:y,isDisabled:f,value:S,isInteractive:xe,isReversed:C,isVertical:J,eventSource:null,focusThumbOnChange:Mt,orientation:u}),ge=d.useRef(null),me=d.useRef(null),Ge=d.useRef(null),zt=d.useId(),Ue=p??zt,[He,Ke]=[`slider-thumb-${Ue}`,`slider-track-${Ue}`],Rt=d.useCallback(h=>{var x,H;if(!ge.current)return;const k=j.current;k.eventSource="pointer";const N=ge.current.getBoundingClientRect(),{clientX:ye,clientY:Lt}=(H=(x=h.touches)==null?void 0:x[0])!=null?H:h,Gt=J?N.bottom-Lt:ye-N.left,Ut=J?N.height:N.width;let we=Gt/Ut;C&&(we=1-we);let K=cn(we,k.min,k.max);return k.step&&(K=parseFloat(nt(K,k.min,k.step))),K=je(K,k.min,k.max),K},[J,C,j]),D=d.useCallback(h=>{const x=j.current;x.isInteractive&&(h=parseFloat(nt(h,x.min,U)),h=je(h,x.min,x.max),de(h))},[U,de,j]),z=d.useMemo(()=>({stepUp(h=U){const x=C?S-h:S+h;D(x)},stepDown(h=U){const x=C?S+h:S-h;D(x)},reset(){D(l||0)},stepTo(h){D(h)}}),[D,C,S,U,l]),We=d.useCallback(h=>{const x=j.current,k={ArrowRight:()=>z.stepUp(),ArrowUp:()=>z.stepUp(),ArrowLeft:()=>z.stepDown(),ArrowDown:()=>z.stepDown(),PageUp:()=>z.stepUp(pe),PageDown:()=>z.stepDown(pe),Home:()=>D(x.min),End:()=>D(x.max)}[h.key];k&&(h.preventDefault(),h.stopPropagation(),k(h),x.eventSource="keyboard")},[z,D,pe,j]),Ye=(t=Ve==null?void 0:Ve(S))!=null?t:E,ve=ts(me),{getThumbStyle:Xe,rootStyle:Ze,trackStyle:qe,innerTrackStyle:Je}=d.useMemo(()=>{const h=j.current,x=ve??{width:0,height:0};return _n({isReversed:C,orientation:h.orientation,thumbRects:[x],thumbPercents:[Le]})},[C,ve,Le,j]),Qe=d.useCallback(()=>{j.current.focusThumbOnChange&&setTimeout(()=>{var x;return(x=me.current)==null?void 0:x.focus()})},[j]);Ht(()=>{const h=j.current;Qe(),h.eventSource==="keyboard"&&(G==null||G(h.value))},[S,G]);function et(h){const x=Rt(h);x!=null&&x!==j.current.value&&de(x)}Xn(Ge,{onPanSessionStart(h){const x=j.current;x.isInteractive&&(Be(!0),Qe(),et(h),$e==null||$e(x.value))},onPanSessionEnd(){const h=j.current;h.isInteractive&&(Be(!1),G==null||G(h.value))},onPan(h){j.current.isInteractive&&et(h)}});const At=d.useCallback((h={},x=null)=>({...h,...Fe,ref:be(x,Ge),tabIndex:-1,"aria-disabled":ke(f),"data-focused":V(fe),style:{...h.style,...Ze}}),[Fe,f,fe,Ze]),Ft=d.useCallback((h={},x=null)=>({...h,ref:be(x,ge),id:Ke,"data-disabled":V(f),style:{...h.style,...qe}}),[f,Ke,qe]),$t=d.useCallback((h={},x=null)=>({...h,ref:x,style:{...h.style,...Je}}),[Je]),Vt=d.useCallback((h={},x=null)=>({...h,ref:be(x,me),role:"slider",tabIndex:xe?0:void 0,id:He,"data-active":V(he),"aria-valuetext":Ye,"aria-valuemin":s,"aria-valuemax":n,"aria-valuenow":S,"aria-orientation":u,"aria-disabled":ke(f),"aria-readonly":ke(v),"aria-label":$,"aria-labelledby":$?void 0:b,style:{...h.style,...Xe(0)},onKeyDown:Pe(h.onKeyDown,We),onFocus:Pe(h.onFocus,()=>Oe(!0)),onBlur:Pe(h.onBlur,()=>Oe(!1))}),[xe,He,he,Ye,s,n,S,u,f,v,$,b,Xe,We]),Bt=d.useCallback((h,x=null)=>{const H=!(h.valuen),k=S>=h.value,N=st(h.value,s,n),ye={position:"absolute",pointerEvents:"none",...ss({orientation:u,vertical:{bottom:C?`${100-N}%`:`${N}%`},horizontal:{left:C?`${100-N}%`:`${N}%`}})};return{...h,ref:x,role:"presentation","aria-hidden":!0,"data-disabled":V(f),"data-invalid":V(!H),"data-highlighted":V(k),style:{...h.style,...ye}}},[f,C,n,s,u,S]),Ot=d.useCallback((h={},x=null)=>({...h,ref:x,type:"hidden",value:S,name:_}),[_,S]);return{state:{value:S,isFocused:fe,isDragging:he},actions:z,getRootProps:At,getTrackProps:Ft,getInnerTrackProps:$t,getThumbProps:Vt,getMarkerProps:Bt,getInputProps:Ot}}function ss(e){const{orientation:t,vertical:s,horizontal:n}=e;return t==="vertical"?s:n}function rs(e,t){return t"}),[as,ie]=it({name:"SliderStylesContext",hookName:"useSliderStyles",providerName:""}),jt=O((e,t)=>{var s;const n={...e,orientation:(s=e==null?void 0:e.orientation)!=null?s:"horizontal"},o=Kt("Slider",n),a=ct(n),{direction:l}=Wt();a.direction=l;const{getInputProps:c,getRootProps:i,...u}=ns(a),p=i(),f=c({},t);return r.jsx(os,{value:u,children:r.jsx(as,{value:o,children:r.jsxs(L.div,{...p,className:q("chakra-slider",n.className),__css:o.container,children:[n.children,r.jsx("input",{...f})]})})})});jt.displayName="Slider";var kt=O((e,t)=>{const{getThumbProps:s}=le(),n=ie(),o=s(e,t);return r.jsx(L.div,{...o,className:q("chakra-slider__thumb",e.className),__css:n.thumb})});kt.displayName="SliderThumb";var Pt=O((e,t)=>{const{getTrackProps:s}=le(),n=ie(),o=s(e,t);return r.jsx(L.div,{...o,className:q("chakra-slider__track",e.className),__css:n.track})});Pt.displayName="SliderTrack";var Ct=O((e,t)=>{const{getInnerTrackProps:s}=le(),n=ie(),o=s(e,t);return r.jsx(L.div,{...o,className:q("chakra-slider__filled-track",e.className),__css:n.filledTrack})});Ct.displayName="SliderFilledTrack";var ls=O((e,t)=>{const{getMarkerProps:s}=le(),n=ie(),o=s(e,t);return r.jsx(L.div,{...o,className:q("chakra-slider__marker",e.className),__css:n.mark})});ls.displayName="SliderMark";function is(e,t=[]){const s=Object.assign({},e);for(const n of t)n in s&&delete s[n];return s}var cs=["h","minH","height","minHeight"],It=O((e,t)=>{const s=Yt("Textarea",e),{className:n,rows:o,...a}=ct(e),l=sn(a),c=o?is(s,cs):s;return r.jsx(L.textarea,{ref:t,rows:o,...l,className:Xt("chakra-textarea",n),__css:c})});It.displayName="Textarea";var us=Re("chevron-left","IconChevronLeft",[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]]),Tt=Re("pin-filled","IconPinFilled",[["path",{d:"M15.113 3.21l.094 .083l5.5 5.5a1 1 0 0 1 -1.175 1.59l-3.172 3.171l-1.424 3.797a1 1 0 0 1 -.158 .277l-.07 .08l-1.5 1.5a1 1 0 0 1 -1.32 .082l-.095 -.083l-2.793 -2.792l-3.793 3.792a1 1 0 0 1 -1.497 -1.32l.083 -.094l3.792 -3.793l-2.792 -2.793a1 1 0 0 1 -.083 -1.32l.083 -.094l1.5 -1.5a1 1 0 0 1 .258 -.187l.098 -.042l3.796 -1.425l3.171 -3.17a1 1 0 0 1 1.497 -1.26z",fill:"currentColor",key:"svg-0",strokeWidth:"0"}]]),Et=Re("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);const ds=({setMediaAct:e,media:t,currentNum:s})=>{const n=l=>{const c=(s+l+t.length)%t.length;e&&e(t[c])},o={width:"100%",height:"100%"};if(t.length===0)return r.jsx("p",{children:"No images found, let's start generating 🪄"});const a=t.at(s);return a?r.jsxs(m,{justifyContent:"center",alignItems:"center",position:"relative",width:o.width,height:o.height,overflow:"hidden",children:[r.jsx("div",{style:{position:"absolute",cursor:"pointer",width:"100%",height:"100%"},onClick:()=>{window.open(a.imageUrl)},children:rn(a.imageUrl)?r.jsx(bn,{src:a.imageUrl,alt:`image-${a.id}`,width:"100%",height:"100%",objectFit:"contain"}):r.jsx("video",{style:{objectFit:"contain"},width:"100%",height:"100%",src:a.imageUrl,loop:!0,autoPlay:!0,muted:!0,children:r.jsx("track",{kind:"captions"})})},a.id),r.jsx(M,{size:"sm",color:"white",bgColor:"whiteAlpha.400","aria-label":"Previous image",icon:r.jsx(us,{}),onClick:()=>n(-1),position:"absolute",left:"0",zIndex:"2"}),r.jsx(M,{size:"sm",color:"white",bgColor:"whiteAlpha.400","aria-label":"Next image",icon:r.jsx(un,{}),onClick:()=>n(1),position:"absolute",right:"0",zIndex:"2"})]}):null};function hs(e){const t=e.split(".").pop();return fetch(e).then(s=>{if(!s.ok)throw new Error("Network response was not ok");return s.blob()}).then(async s=>{const n=e.split("/").pop()??"",o=new File([s],n);if(dn(e))return hn(o);if(t==="webp")return fn(o);const a=await xn(o),l=JSON.parse(a==null?void 0:a.prompt),c=JSON.parse(a==null?void 0:a.workflow);return{prompt:l,workflow:c}})}const fs=({inputItem:e})=>r.jsxs(m,{gap:2,children:[r.jsx(m,{gap:1,alignItems:"center",flexBasis:"200px",children:e.label??e.inputName}),r.jsx(on,{value:e.inputValue,onChange:t=>{}})]}),xs=e=>{const t=e.inputItem;return r.jsxs(m,{gap:1,direction:"column",children:[r.jsxs(m,{gap:2,children:[r.jsx(m,{gap:1,alignItems:"center",flexBasis:"200px",children:t.label??t.inputName}),r.jsxs(pn,{width:"100%",step:e==null?void 0:e.step,value:t.inputValue,min:e==null?void 0:e.min,max:e==null?void 0:e.max,onChange:s=>{},children:[r.jsx(gn,{}),r.jsxs(mn,{children:[r.jsx(vn,{}),r.jsx(yn,{})]})]})]}),r.jsx(m,{children:r.jsxs(jt,{maxWidth:"400px",step:e==null?void 0:e.step,value:Number(t.inputValue),min:(e==null?void 0:e.min)??0,max:(e==null?void 0:e.max)??100,onChange:s=>{},children:[r.jsx(Pt,{children:r.jsx(Ct,{})}),r.jsx(kt,{})]})})]})},ps=e=>{var s;const{inputItem:t}=e;return r.jsxs(m,{gap:2,children:[r.jsx(m,{gap:1,alignItems:"center",flexBasis:"200px",children:t.label??t.inputName}),r.jsx(jn,{value:t.inputValue,onChange:n=>{},children:(s=e==null?void 0:e.options)==null?void 0:s.map((n,o)=>r.jsx("option",{value:n,children:n},`select${t.nodeID}${t.inputName}${o}`))})]})},gs=e=>{const t=e.inputItem;return r.jsxs(m,{gap:1,direction:"column",children:[r.jsx(m,{children:t.label??t.inputName}),r.jsx(It,{value:t.inputValue,onChange:s=>{},rows:5})]})};var P=(e=>(e.Input="Input",e.InputSlider="InputSlider",e.Select="Select",e.Textarea="Textarea",e.Checkbox="Checkbox",e.NoSupport="NoSupport",e))(P||{});const ms=e=>r.jsxs(m,{gap:2,children:[r.jsx(m,{gap:1,alignItems:"center",flexBasis:"200px",children:e.inputItem.label??e.inputItem.inputName}),r.jsx(m,{children:"No Support"})]}),vs=e=>{const t=e.inputItem;return r.jsxs(m,{gap:2,children:[r.jsx(m,{gap:1,alignItems:"center",flexBasis:"200px",children:t.label??t.inputName}),r.jsx(Ae,{defaultChecked:!!t.inputValue,onChange:s=>{var n;(n=e==null?void 0:e.updateMetaData)==null||n.call(e,{promptKey:e.promptKey,name:e.name,value:s.target.checked})}})]})},ce=d.createContext({topFields:[],calcInputList:[],showNodeName:!1,updateTopField(){}}),ys={[P.Input]:fs,[P.InputSlider]:xs,[P.Select]:ps,[P.Textarea]:gs,[P.Checkbox]:vs,NoSupport:ms},ws=LiteGraph.registered_node_types;function Ss(e,t){var o,a,l,c,i;const s=(o=ws[e])==null?void 0:o.nodeData,n={...((a=s==null?void 0:s.input)==null?void 0:a.required)??{},...((l=s==null?void 0:s.input)==null?void 0:l.optional)??{}}[t];return(n==null?void 0:n[0])==="STRING"?(c=n==null?void 0:n[1])!=null&&c.multiline?{type:P.Textarea}:{type:P.Input}:(n==null?void 0:n[0])==="BOOLEAN"?{type:P.Checkbox}:(n==null?void 0:n[0])==="FLOAT"?{...(n==null?void 0:n[1])??{},type:P.InputSlider}:(n==null?void 0:n[0])==="INT"?{...(n==null?void 0:n[1])??{},type:P.InputSlider}:Array.isArray(n==null?void 0:n[0])&&((i=n==null?void 0:n[0])!=null&&i.every(u=>typeof u=="string"))?{options:n==null?void 0:n[0],type:P.Select}:{type:P.NoSupport}}const De=({inputItem:e})=>{const t=Ss(e.classType,e.inputName),[s,n]=d.useState(!1),o=ys[t.type??"Input"],{updateTopField:a,topFields:l}=d.useContext(ce),c=e.children[0]==="negative"||e.children[0]==="positive"?`-${e.children[0]}`:"",i={...e,label:e.label??e.inputName+c};return r.jsxs(m,{alignItems:"center",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[r.jsx(M,{size:"xs",onClick:()=>a==null?void 0:a({name:e.inputName,promptKey:e.nodeID,class_type:e.classType}),variant:"ghost",icon:re(l,{name:e.inputName,promptKey:e.nodeID,classType:e.classType})?r.jsx(Tt,{size:14}):r.jsx(Et,{size:14}),"aria-label":"pin"}),r.jsx("div",{style:{flex:1},children:r.jsx(o,{inputItem:i,...t})})]})};function bs(){const{topFields:e,updateTopField:t,calcInputList:s}=d.useContext(ce);return e.length===0?null:r.jsx(r.Fragment,{children:r.jsx(m,{px:2,gap:2,direction:"column",children:e==null?void 0:e.map(n=>{const o=s.find(a=>a.nodeID==n.promptKey&&a.inputName===n.name&&a.classType===n.class_type);return!n.class_type||!o?null:r.jsx(De,{inputItem:o},`formTopField${n.promptKey}${n.name}`)})})})}function js(){const{topFields:e,calcInputList:t,showNodeName:s}=d.useContext(ce),n=d.useCallback(a=>{const l=[];return a.forEach(c=>{const i=l[l.length-1];!i||i[0].nodeID!==c.nodeID||i[0].classType!==c.classType?l.push([c]):i.push(c)}),l},[]);if(d.useEffect(()=>{},[s]),!s)return r.jsx(Ee,{children:t.map(a=>re(e,{name:a.inputName,promptKey:a.nodeID,classType:a.classType})?null:r.jsx(De,{inputItem:a},`form${a.nodeID}${a.inputName}`))});const o=n(t);return r.jsx(Ee,{children:o.map(a=>a[0]?r.jsx(ks,{title:a[0].classType+" #"+a[0].nodeID,children:r.jsx(m,{px:2,gap:1,direction:"column",children:a.map(l=>re(e,{name:l.inputName,promptKey:l.nodeID,classType:l.classType})?null:r.jsx(De,{inputItem:l},`form${l.nodeID}${l.inputName}`))})},a[0].nodeID):null)})}function ks({title:e,children:t}){return r.jsxs(ht,{border:"1px",borderColor:"gray.500",borderRadius:"md",p:4,children:[r.jsx(W,{size:"sm",mb:1,color:"GrayText",children:e}),r.jsx("div",{children:t})]})}let se=[],ze=new Set;function Nt(e,t){if(!ze.has(e.nodeID))return ze.add(e.nodeID),Object.entries(e.inputs).forEach(([s,n])=>{if(Array.isArray(n)){const o=n[0];Nt(t[o],t)}}),Object.entries(e.inputs).forEach(([s,n])=>{Array.isArray(n)||se.push({classType:e.class_type,inputName:s,inputValue:n,nodeID:e.nodeID,children:e.children||[]})}),se}function Ps(e){se=[],ze=new Set;for(const t of Object.keys(e))e[t].nodeID=t,Object.entries(e[t].inputs).forEach(([s,n])=>{if(Array.isArray(n)){const o=n[0],a=e[o];a.children||(a.children=[]),a.children.push(s)}});for(const t of Object.keys(e))Nt(e[t],e);return se}const re=(e,t)=>e==null?void 0:e.some(s=>s.promptKey===(t==null?void 0:t.promptKey)&&s.name===(t==null?void 0:t.name)&&s.class_type===t.classType);function Cs({media:e}){const[t,s]=d.useState([]),{curFlowID:n}=d.useContext(oe),[o,a]=d.useState(),[l,c]=d.useState(!0),[i,u]=d.useState(!0);d.useEffect(()=>{e?hs(`/workspace/view_media?filename=${e.localPath}`).then(g=>{a(g.prompt)}):tt.graphToPrompt(tt.graph).then(g=>{a(g.output)})},[e]),d.useEffect(()=>{if(!o)return;const g=Ps(o);s(g)},[o]);const[p,f]=d.useState([]);d.useEffect(()=>{(async()=>{var g,I;if(n){const y=(I=await((g=R)==null?void 0:g.get(n)))==null?void 0:I.topFieldsConfig;y&&(f(y),c(!1))}})()},[n]);const v=g=>{var I,y;if(re(p,{name:g.name,promptKey:g==null?void 0:g.promptKey,classType:(g==null?void 0:g.class_type)??""})){const w=p.filter(E=>E.name!==g.name||E.promptKey!==g.promptKey);f(w),n&&((I=R)==null||I.updateTopFields(n,{topFieldsConfig:w}))}else{const w=[...p,g];f(w),n&&((y=R)==null||y.updateTopFields(n,{topFieldsConfig:w}))}};return r.jsx(ce.Provider,{value:{topFields:p,showNodeName:i,calcInputList:t,updateTopField:v},children:r.jsxs(m,{direction:"column",align:"stretch",gap:5,children:[r.jsx(bs,{}),r.jsxs(Y,{children:[r.jsx("p",{children:"Show all inputs"}),r.jsx(rt,{isChecked:l,onChange:g=>c(!l)}),r.jsx("p",{children:"Show node names"}),r.jsx(rt,{isChecked:i,onChange:g=>u(!i)})]}),l&&r.jsx(js,{})]})})}const ue=d.createContext({showAllImages:!1,curMedia:null,setCurMedia(){},setMediaList(){},setShowAllImages(){}}),Is=({media:e})=>{var l,c;const[t,s]=d.useState(!1),{setMediaList:n}=d.useContext(ue),{loadFilePath:o}=d.useContext(oe),{showDialog:a}=ut();return d.useEffect(()=>{var i,u;s((e==null?void 0:e.localPath)!=null&&((u=(i=R)==null?void 0:i.curWorkflow)==null?void 0:u.coverMediaPath)===(e==null?void 0:e.localPath))},[e]),e?r.jsxs(m,{flexWrap:"wrap",gap:3,children:[r.jsx(m,{alignItems:"center",gap:2,children:e.localPath&&r.jsxs(r.Fragment,{children:[r.jsx(W,{children:e==null?void 0:e.localPath}),r.jsx(A,{label:"Donwload image from gallery",children:r.jsx(Ne,{href:`/workspace/view_media?filename=${e==null?void 0:e.localPath}`,download:e==null?void 0:e.localPath,children:r.jsx(M,{size:"sm",icon:r.jsx(ft,{size:19}),"aria-label":"donwload image from gallery"})})})]})}),r.jsx(m,{gap:1,alignItems:"center",color:"GrayText",children:!!(e!=null&&e.createTime)&&r.jsx(W,{children:xt((e==null?void 0:e.createTime)??0,!0)})}),r.jsx(A,{label:"Remove image from gallery",children:r.jsx(M,{size:"sm",variant:"ghost",icon:r.jsx(pt,{size:19}),"aria-label":"remove image from gallery",colorScheme:"red",onClick:async()=>{var u;confirm("Are you sure to remove this image from gallery? (won't delete image on your disk)")&&(await((u=F)==null?void 0:u.delete(e.id)),n(p=>p.filter(f=>f.id!==e.id)))}})}),((c=(l=R)==null?void 0:l.curWorkflow)==null?void 0:c.id)&&r.jsx(A,{label:"Set as cover",children:r.jsx(M,{size:"sm",variant:"ghost",icon:t?r.jsx(Tt,{size:19}):r.jsx(Et,{size:19}),"aria-label":"set as cover",onClick:async()=>{var i;await((i=R)==null?void 0:i.updateMetaInfo(R.curWorkflow.id,{coverMediaPath:t?void 0:e.localPath})),s(!t)}})}),r.jsx(dt,{onClick:()=>a("How do you want to load this workflow?",[{label:"Load in new workflow",onClick:()=>{o(e.localPath)},colorScheme:"teal"},{label:"Overwrite current workflow",onClick:()=>o(e.localPath,!0),colorScheme:"red"}]),size:"sm",children:"Load"})]}):null},Ts=({media:e})=>r.jsxs(m,{overflowY:"auto",mb:4,direction:"column",gap:2,flex:1,children:[r.jsx(Is,{media:e}),r.jsx(Cs,{media:e??null})]}),Te=120;function Es({mediaList:e}){const{curMedia:t,setCurMedia:s}=d.useContext(ue);return r.jsxs(m,{gap:3,h:"100%",children:[r.jsxs(kn,{gridTemplateRows:e.length<=6?"1fr 20%":"1fr",flex:1,gap:2,children:[r.jsx("div",{style:{height:"56vh"},children:r.jsx(ds,{media:e.map(n=>({id:n.id,imageUrl:`/workspace/view_media?filename=${n.localPath}`})),currentNum:(e==null?void 0:e.findIndex(n=>n.id===(t==null?void 0:t.id)))??0,setMediaAct:n=>s((e==null?void 0:e.find(o=>o.id===n.id))??null)})}),r.jsx(m,{wrap:"wrap",children:e==null?void 0:e.map(n=>r.jsx(ht,{display:"inline-block",p:1,borderRadius:"4px",width:`${Te+3}px`,height:`${Te+3}px`,cursor:"pointer",border:(t==null?void 0:t.id)===n.id?"1px solid gray":"",onClick:()=>s(n),children:r.jsx(gt,{mediaLocalPath:n.localPath,size:Te,objectFit:"contain",hideBrokenImage:!0,onBrokenLink:()=>{var o;(o=F)==null||o.delete(n.id)}})},`image-bottom-${n.id}`))})]}),r.jsx(Ts,{media:t??void 0})]})}const Ns=({media:e,isSelecting:t,selectedID:s,onClickMedia:n})=>{const{curFlowID:a,loadFilePath:l}=d.useContext(oe),{showDialog:c}=ut();if(e.localPath==null||a==null)return null;const i=r.jsxs(Ne,{isExternal:!0,onClick:()=>n(e),position:"relative",children:[t&&r.jsx(Ae,{isChecked:s.includes(e.id),position:"absolute",top:2,left:2}),r.jsx(gt,{mediaLocalPath:e.localPath,size:180,onBrokenLink:()=>{var u;(u=F)==null||u.delete(e.id)},hideBrokenImage:!0,autoPlay:!0,isPreview:!0})]});return r.jsxs(Ee,{width:180,mb:2,children:[r.jsx(A,{label:xt(e.createTime,!0),children:i}),r.jsx(A,{label:e.localPath,children:r.jsx(W,{color:"GrayText",noOfLines:1,children:e.localPath})}),r.jsxs(Y,{hidden:t,gap:0,children:[r.jsx(dt,{flexGrow:1,onClick:()=>c("How do you want to load this workflow?",[{label:"Load in new workflow",onClick:()=>{l(e.localPath)},colorScheme:"teal"},{label:"Overwrite current workflow",onClick:()=>l(e.localPath,!0),colorScheme:"red"}]),size:"sm",children:"Load"}),r.jsx(A,{label:"Donwload image from gallery",children:r.jsx(Ne,{href:`/workspace/view_media?filename=${e.localPath}`,download:e.localPath,children:r.jsx(M,{size:"sm",variant:"ghost",icon:r.jsx(ft,{size:19}),"aria-label":"donwload image from gallery"})})}),r.jsx(A,{label:"Remove image from gallery",children:r.jsx(M,{size:"sm",variant:"ghost",icon:r.jsx(pt,{size:19}),"aria-label":"remove image from gallery",colorScheme:"red",onClick:async()=>{var p;confirm("Are you sure to remove this image from gallery? (won't delete image on your disk)")&&await((p=F)==null?void 0:p.delete(e.id))}})})]})]})},Ms=Ns;function _s({searchQuery:e}){const[t,s]=d.useState([]),{setCurMedia:n,setShowAllImages:o,setMediaList:a}=d.useContext(ue);d.useEffect(()=>{var c,i;e===""?(c=F)==null||c.listAll().then(u=>{s(u.slice(0,50)??[])}):(i=F)==null||i.filter(u=>{var p;return((p=u.workflowJSON)==null?void 0:p.includes(e))??!1}).then(u=>{s(u)})},[e]);const l=c=>{a([c].concat(t.filter(i=>i.id!==c.id))),n(c),o(!1)};return r.jsx(Y,{wrap:"wrap",children:t.map(c=>r.jsx(Ms,{selectedID:[],media:c,isSelecting:!1,onClickMedia:l},c.id))})}function Gs({onclose:e}){const{curFlowID:t}=d.useContext(oe),[s,n]=d.useState(""),[o,a]=d.useState([]),[l,c]=d.useState(!1),[i,u]=d.useState([]),[p,f]=d.useState(),[v,g]=d.useState(""),I=wn(v,300),[y,w]=d.useState(!1),E=async()=>{var _;if(t==null)return;const b=await((_=F)==null?void 0:_.listByWorkflowID(t));u(b??[]),b!=null&&b.length&&f(b[0])};if(d.useEffect(()=>{var b;E(),t&&((b=R)==null||b.get(t).then(_=>{_&&n(_.name)}))},[]),t==null)return null;const $=i.length>0&&o.length===i.length;return r.jsx(ue.Provider,{value:{curMedia:p??null,setCurMedia:f,setMediaList:u,showAllImages:y,setShowAllImages:w},children:r.jsxs(Zt,{isOpen:!0,onClose:e,blockScrollOnMount:!0,children:[r.jsx(qt,{}),r.jsxs(Jt,{width:"90%",maxWidth:"90vw",height:"90vh",children:[r.jsxs(Qt,{children:[r.jsxs(Y,{gap:2,mb:2,children:[r.jsxs(an,{size:"md",mr:2,children:["Gallery - ",s]}),r.jsx(Sn,{searchValue:v,onUpdateSearchValue:b=>{g(b),y||w(!0)},placeholder:"Search prompt, model name, etc.",style:{width:"300px"}})]}),l&&r.jsxs(Y,{gap:3,children:[r.jsx(Ae,{isChecked:$,onChange:()=>{a($?[]:i.map(b=>b.id))},children:"All"}),r.jsxs(W,{fontSize:16,children:[o.length," Selected"]}),r.jsx(M,{size:"sm",icon:r.jsx(ln,{size:19}),onClick:()=>c(!1),"aria-label":"cancel"})]})]}),r.jsx(en,{}),r.jsx(tn,{overflowY:"auto",children:y?r.jsx(_s,{searchQuery:I}):r.jsx(Es,{mediaList:i})})]})]})})}export{Gs as default}; diff --git a/dist/workspace_web/GalleryModal-xU6CfB8I.js b/dist/workspace_web/GalleryModal-xU6CfB8I.js deleted file mode 100644 index 54fdc4a..0000000 --- a/dist/workspace_web/GalleryModal-xU6CfB8I.js +++ /dev/null @@ -1 +0,0 @@ -import{r as d,d as Se,y as Ht,m as be,b as it,f as L,l as Kt,o as ct,E as Wt,j as r,g as O,p as Yt,h as Xt,W as ut,i as dt,M as Zt,N as qt,O as Jt,Q as Qt,R as en,S as tn}from"./input.js";import{ab as nn,ac as sn,d as Re,F as p,ad as rn,ae as on,I as M,j as an,g as Ee,B as ht,h as W,Z as oe,af as ln,a5 as tt,x as R,H as Y,i as A,w as ft,a3 as xt,e as gt,a2 as F,ag as cn,y as un}from"./App-eQybp91e.js";import{c as je,p as dn,r as nt,v as st,I as hn,N as fn,a as xn,b as gn,d as mn,e as pn,M as mt,u as vn,S as yn}from"./MediaPreview-gKBl9R3H.js";import{S as wn}from"./chunk-3RSXBRAN-LXNJ9qB5.js";import{C as Ae,G as Sn}from"./chunk-JARCRF6W-OjDz07lE.js";import{S as rt,L as Ne}from"./chunk-VTV6N5LE-_EaL4yE7.js";import"./IconSearch-3Gq-3maw.js";import"./chunk-7D6N5TE5-lFR77IBa.js";const pt=1/60*1e3,bn=typeof performance<"u"?()=>performance.now():()=>Date.now(),vt=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(bn()),pt);function jn(e){let t=[],s=[],n=0,o=!1,a=!1;const l=new WeakSet,c={schedule:(i,u=!1,g=!1)=>{const f=g&&o,v=f?t:s;return u&&l.add(i),v.indexOf(i)===-1&&(v.push(i),f&&o&&(n=t.length)),i},cancel:i=>{const u=s.indexOf(i);u!==-1&&s.splice(u,1),l.delete(i)},process:i=>{if(o){a=!0;return}if(o=!0,[t,s]=[s,t],s.length=0,n=t.length,n)for(let u=0;u(e[t]=jn(()=>X=!0),e),{}),Pn=Z.reduce((e,t)=>{const s=ae[t];return e[t]=(n,o=!1,a=!1)=>(X||Tn(),s.schedule(n,o,a)),e},{}),Cn=Z.reduce((e,t)=>(e[t]=ae[t].cancel,e),{});Z.reduce((e,t)=>(e[t]=()=>ae[t].process(B),e),{});const In=e=>ae[e].process(B),yt=e=>{X=!1,B.delta=Me?pt:Math.max(Math.min(e-B.timestamp,kn),1),B.timestamp=e,De=!0,Z.forEach(In),De=!1,X&&(Me=!1,vt(yt))},Tn=()=>{X=!0,Me=!0,De||vt(yt)},ot=()=>B;var V=e=>e?"":void 0,ke=e=>e?!0:void 0,q=(...e)=>e.filter(Boolean).join(" ");function Pe(...e){return function(s){e.some(n=>(n==null||n(s),s==null?void 0:s.defaultPrevented))}}function Q(e){const{orientation:t,vertical:s,horizontal:n}=e;return t==="vertical"?s:n}var te={width:0,height:0},ee=e=>e||te;function En(e){const{orientation:t,thumbPercents:s,thumbRects:n,isReversed:o}=e,a=y=>{var w;const E=(w=n[y])!=null?w:te;return{position:"absolute",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none",...Q({orientation:t,vertical:{bottom:`calc(${s[y]}% - ${E.height/2}px)`},horizontal:{left:`calc(${s[y]}% - ${E.width/2}px)`}})}},l=t==="vertical"?n.reduce((y,w)=>ee(y).height>ee(w).height?y:w,te):n.reduce((y,w)=>ee(y).width>ee(w).width?y:w,te),c={position:"relative",touchAction:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",userSelect:"none",outline:0,...Q({orientation:t,vertical:l?{paddingLeft:l.width/2,paddingRight:l.width/2}:{},horizontal:l?{paddingTop:l.height/2,paddingBottom:l.height/2}:{}})},i={position:"absolute",...Q({orientation:t,vertical:{left:"50%",transform:"translateX(-50%)",height:"100%"},horizontal:{top:"50%",transform:"translateY(-50%)",width:"100%"}})},u=s.length===1,g=[0,o?100-s[0]:s[0]],f=u?g:s;let v=f[0];!u&&o&&(v=100-v);const m=Math.abs(f[f.length-1]-f[0]),I={...i,...Q({orientation:t,vertical:o?{height:`${m}%`,top:`${v}%`}:{height:`${m}%`,bottom:`${v}%`},horizontal:o?{width:`${m}%`,right:`${v}%`}:{width:`${m}%`,left:`${v}%`}})};return{trackStyle:i,innerTrackStyle:I,rootStyle:c,getThumbStyle:a}}function Nn(e){const{isReversed:t,direction:s,orientation:n}=e;return s==="ltr"||n==="vertical"?t:!t}function Mn(e,t,s,n){return e.addEventListener(t,s,n),()=>{e.removeEventListener(t,s,n)}}function Dn(e){const t=zn(e);return typeof t.PointerEvent<"u"&&e instanceof t.PointerEvent?e.pointerType==="mouse":e instanceof t.MouseEvent}function wt(e){return!!e.touches}function _n(e){return wt(e)&&e.touches.length>1}function zn(e){var t;return(t=e.view)!=null?t:window}function Rn(e,t="page"){const s=e.touches[0]||e.changedTouches[0];return{x:s[`${t}X`],y:s[`${t}Y`]}}function An(e,t="page"){return{x:e[`${t}X`],y:e[`${t}Y`]}}function St(e,t="page"){return wt(e)?Rn(e,t):An(e,t)}function Fn(e){return t=>{const s=Dn(t);(!s||s&&t.button===0)&&e(t)}}function $n(e,t=!1){function s(o){e(o,{point:St(o)})}return t?Fn(s):s}function ne(e,t,s,n){return Mn(e,t,$n(s,t==="pointerdown"),n)}var Vn=Object.defineProperty,Bn=(e,t,s)=>t in e?Vn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,T=(e,t,s)=>(Bn(e,typeof t!="symbol"?t+"":t,s),s),Ln=class{constructor(e,t,s){T(this,"history",[]),T(this,"startEvent",null),T(this,"lastEvent",null),T(this,"lastEventInfo",null),T(this,"handlers",{}),T(this,"removeListeners",()=>{}),T(this,"threshold",3),T(this,"win"),T(this,"updatePoint",()=>{if(!(this.lastEvent&&this.lastEventInfo))return;const c=Ce(this.lastEventInfo,this.history),i=this.startEvent!==null,u=Hn(c.offset,{x:0,y:0})>=this.threshold;if(!i&&!u)return;const{timestamp:g}=ot();this.history.push({...c.point,timestamp:g});const{onStart:f,onMove:v}=this.handlers;i||(f==null||f(this.lastEvent,c),this.startEvent=this.lastEvent),v==null||v(this.lastEvent,c)}),T(this,"onPointerMove",(c,i)=>{this.lastEvent=c,this.lastEventInfo=i,Pn.update(this.updatePoint,!0)}),T(this,"onPointerUp",(c,i)=>{const u=Ce(i,this.history),{onEnd:g,onSessionEnd:f}=this.handlers;f==null||f(c,u),this.end(),!(!g||!this.startEvent)&&(g==null||g(c,u))});var n;if(this.win=(n=e.view)!=null?n:window,_n(e))return;this.handlers=t,s&&(this.threshold=s),e.stopPropagation(),e.preventDefault();const o={point:St(e)},{timestamp:a}=ot();this.history=[{...o.point,timestamp:a}];const{onSessionStart:l}=t;l==null||l(e,Ce(o,this.history)),this.removeListeners=Un(ne(this.win,"pointermove",this.onPointerMove),ne(this.win,"pointerup",this.onPointerUp),ne(this.win,"pointercancel",this.onPointerUp))}updateHandlers(e){this.handlers=e}end(){var e;(e=this.removeListeners)==null||e.call(this),Cn.update(this.updatePoint)}};function at(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ce(e,t){return{point:e.point,delta:at(e.point,t[t.length-1]),offset:at(e.point,t[0]),velocity:Gn(t,.1)}}var On=e=>e*1e3;function Gn(e,t){if(e.length<2)return{x:0,y:0};let s=e.length-1,n=null;const o=e[e.length-1];for(;s>=0&&(n=e[s],!(o.timestamp-n.timestamp>On(t)));)s--;if(!n)return{x:0,y:0};const a=(o.timestamp-n.timestamp)/1e3;if(a===0)return{x:0,y:0};const l={x:(o.x-n.x)/a,y:(o.y-n.y)/a};return l.x===1/0&&(l.x=0),l.y===1/0&&(l.y=0),l}function Un(...e){return t=>e.reduce((s,n)=>n(s),t)}function Ie(e,t){return Math.abs(e-t)}function lt(e){return"x"in e&&"y"in e}function Hn(e,t){if(typeof e=="number"&&typeof t=="number")return Ie(e,t);if(lt(e)&<(t)){const s=Ie(e.x,t.x),n=Ie(e.y,t.y);return Math.sqrt(s**2+n**2)}return 0}function bt(e){const t=d.useRef(null);return t.current=e,t}function Kn(e,t){const{onPan:s,onPanStart:n,onPanEnd:o,onPanSessionStart:a,onPanSessionEnd:l,threshold:c}=t,i=!!(s||n||o||a||l),u=d.useRef(null),g=bt({onSessionStart:a,onSessionEnd:l,onStart:n,onMove:s,onEnd(f,v){u.current=null,o==null||o(f,v)}});d.useEffect(()=>{var f;(f=u.current)==null||f.updateHandlers(g.current)}),d.useEffect(()=>{const f=e.current;if(!f||!i)return;function v(m){u.current=new Ln(m,g.current,c)}return ne(f,"pointerdown",v)},[e,i,g,c]),d.useEffect(()=>()=>{var f;(f=u.current)==null||f.end(),u.current=null},[])}function Wn(e,t){if(!e){t(void 0);return}t({width:e.offsetWidth,height:e.offsetHeight});const s=e.ownerDocument.defaultView??window,n=new s.ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const[a]=o;let l,c;if("borderBoxSize"in a){const i=a.borderBoxSize,u=Array.isArray(i)?i[0]:i;l=u.inlineSize,c=u.blockSize}else l=e.offsetWidth,c=e.offsetHeight;t({width:l,height:c})});return n.observe(e,{box:"border-box"}),()=>n.unobserve(e)}var Yn=globalThis!=null&&globalThis.document?d.useLayoutEffect:d.useEffect;function Xn(e,t){var s,n;if(!e||!e.parentElement)return;const o=(n=(s=e.ownerDocument)==null?void 0:s.defaultView)!=null?n:window,a=new o.MutationObserver(()=>{t()});return a.observe(e.parentElement,{childList:!0}),()=>{a.disconnect()}}function Zn({getNodes:e,observeMutation:t=!0}){const[s,n]=d.useState([]),[o,a]=d.useState(0);return Yn(()=>{const l=e(),c=l.map((i,u)=>Wn(i,g=>{n(f=>[...f.slice(0,u),g,...f.slice(u+1)])}));if(t){const i=l[0];c.push(Xn(i,()=>{a(u=>u+1)}))}return()=>{c.forEach(i=>{i==null||i()})}},[o]),s}function qn(e){return typeof e=="object"&&e!==null&&"current"in e}function Jn(e){const[t]=Zn({observeMutation:!1,getNodes(){return[qn(e)?e.current:e]}});return t}function Qn(e){var t;const{min:s=0,max:n=100,onChange:o,value:a,defaultValue:l,isReversed:c,direction:i="ltr",orientation:u="horizontal",id:g,isDisabled:f,isReadOnly:v,onChangeStart:m,onChangeEnd:I,step:y=1,getAriaValueText:w,"aria-valuetext":E,"aria-label":$,"aria-labelledby":b,name:D,focusThumbOnChange:Mt=!0,...Fe}=e,$e=Se(m),G=Se(I),Ve=Se(w),C=Nn({isReversed:c,direction:i,orientation:u}),[Dt,de]=nn({value:a,defaultValue:l??ts(s,n),onChange:o}),[he,Be]=d.useState(!1),[fe,Le]=d.useState(!1),xe=!(f||v),ge=(n-s)/10,U=y||(n-s)/100,S=je(Dt,s,n),_t=n-S+s,Oe=st(C?_t:S,s,n),J=u==="vertical",j=bt({min:s,max:n,step:y,isDisabled:f,value:S,isInteractive:xe,isReversed:C,isVertical:J,eventSource:null,focusThumbOnChange:Mt,orientation:u}),me=d.useRef(null),pe=d.useRef(null),Ge=d.useRef(null),zt=d.useId(),Ue=g??zt,[He,Ke]=[`slider-thumb-${Ue}`,`slider-track-${Ue}`],Rt=d.useCallback(h=>{var x,H;if(!me.current)return;const k=j.current;k.eventSource="pointer";const N=me.current.getBoundingClientRect(),{clientX:ye,clientY:Ot}=(H=(x=h.touches)==null?void 0:x[0])!=null?H:h,Gt=J?N.bottom-Ot:ye-N.left,Ut=J?N.height:N.width;let we=Gt/Ut;C&&(we=1-we);let K=dn(we,k.min,k.max);return k.step&&(K=parseFloat(nt(K,k.min,k.step))),K=je(K,k.min,k.max),K},[J,C,j]),_=d.useCallback(h=>{const x=j.current;x.isInteractive&&(h=parseFloat(nt(h,x.min,U)),h=je(h,x.min,x.max),de(h))},[U,de,j]),z=d.useMemo(()=>({stepUp(h=U){const x=C?S-h:S+h;_(x)},stepDown(h=U){const x=C?S+h:S-h;_(x)},reset(){_(l||0)},stepTo(h){_(h)}}),[_,C,S,U,l]),We=d.useCallback(h=>{const x=j.current,k={ArrowRight:()=>z.stepUp(),ArrowUp:()=>z.stepUp(),ArrowLeft:()=>z.stepDown(),ArrowDown:()=>z.stepDown(),PageUp:()=>z.stepUp(ge),PageDown:()=>z.stepDown(ge),Home:()=>_(x.min),End:()=>_(x.max)}[h.key];k&&(h.preventDefault(),h.stopPropagation(),k(h),x.eventSource="keyboard")},[z,_,ge,j]),Ye=(t=Ve==null?void 0:Ve(S))!=null?t:E,ve=Jn(pe),{getThumbStyle:Xe,rootStyle:Ze,trackStyle:qe,innerTrackStyle:Je}=d.useMemo(()=>{const h=j.current,x=ve??{width:0,height:0};return En({isReversed:C,orientation:h.orientation,thumbRects:[x],thumbPercents:[Oe]})},[C,ve,Oe,j]),Qe=d.useCallback(()=>{j.current.focusThumbOnChange&&setTimeout(()=>{var x;return(x=pe.current)==null?void 0:x.focus()})},[j]);Ht(()=>{const h=j.current;Qe(),h.eventSource==="keyboard"&&(G==null||G(h.value))},[S,G]);function et(h){const x=Rt(h);x!=null&&x!==j.current.value&&de(x)}Kn(Ge,{onPanSessionStart(h){const x=j.current;x.isInteractive&&(Be(!0),Qe(),et(h),$e==null||$e(x.value))},onPanSessionEnd(){const h=j.current;h.isInteractive&&(Be(!1),G==null||G(h.value))},onPan(h){j.current.isInteractive&&et(h)}});const At=d.useCallback((h={},x=null)=>({...h,...Fe,ref:be(x,Ge),tabIndex:-1,"aria-disabled":ke(f),"data-focused":V(fe),style:{...h.style,...Ze}}),[Fe,f,fe,Ze]),Ft=d.useCallback((h={},x=null)=>({...h,ref:be(x,me),id:Ke,"data-disabled":V(f),style:{...h.style,...qe}}),[f,Ke,qe]),$t=d.useCallback((h={},x=null)=>({...h,ref:x,style:{...h.style,...Je}}),[Je]),Vt=d.useCallback((h={},x=null)=>({...h,ref:be(x,pe),role:"slider",tabIndex:xe?0:void 0,id:He,"data-active":V(he),"aria-valuetext":Ye,"aria-valuemin":s,"aria-valuemax":n,"aria-valuenow":S,"aria-orientation":u,"aria-disabled":ke(f),"aria-readonly":ke(v),"aria-label":$,"aria-labelledby":$?void 0:b,style:{...h.style,...Xe(0)},onKeyDown:Pe(h.onKeyDown,We),onFocus:Pe(h.onFocus,()=>Le(!0)),onBlur:Pe(h.onBlur,()=>Le(!1))}),[xe,He,he,Ye,s,n,S,u,f,v,$,b,Xe,We]),Bt=d.useCallback((h,x=null)=>{const H=!(h.valuen),k=S>=h.value,N=st(h.value,s,n),ye={position:"absolute",pointerEvents:"none",...es({orientation:u,vertical:{bottom:C?`${100-N}%`:`${N}%`},horizontal:{left:C?`${100-N}%`:`${N}%`}})};return{...h,ref:x,role:"presentation","aria-hidden":!0,"data-disabled":V(f),"data-invalid":V(!H),"data-highlighted":V(k),style:{...h.style,...ye}}},[f,C,n,s,u,S]),Lt=d.useCallback((h={},x=null)=>({...h,ref:x,type:"hidden",value:S,name:D}),[D,S]);return{state:{value:S,isFocused:fe,isDragging:he},actions:z,getRootProps:At,getTrackProps:Ft,getInnerTrackProps:$t,getThumbProps:Vt,getMarkerProps:Bt,getInputProps:Lt}}function es(e){const{orientation:t,vertical:s,horizontal:n}=e;return t==="vertical"?s:n}function ts(e,t){return t"}),[ss,ie]=it({name:"SliderStylesContext",hookName:"useSliderStyles",providerName:""}),jt=L((e,t)=>{var s;const n={...e,orientation:(s=e==null?void 0:e.orientation)!=null?s:"horizontal"},o=Kt("Slider",n),a=ct(n),{direction:l}=Wt();a.direction=l;const{getInputProps:c,getRootProps:i,...u}=Qn(a),g=i(),f=c({},t);return r.jsx(ns,{value:u,children:r.jsx(ss,{value:o,children:r.jsxs(O.div,{...g,className:q("chakra-slider",n.className),__css:o.container,children:[n.children,r.jsx("input",{...f})]})})})});jt.displayName="Slider";var kt=L((e,t)=>{const{getThumbProps:s}=le(),n=ie(),o=s(e,t);return r.jsx(O.div,{...o,className:q("chakra-slider__thumb",e.className),__css:n.thumb})});kt.displayName="SliderThumb";var Pt=L((e,t)=>{const{getTrackProps:s}=le(),n=ie(),o=s(e,t);return r.jsx(O.div,{...o,className:q("chakra-slider__track",e.className),__css:n.track})});Pt.displayName="SliderTrack";var Ct=L((e,t)=>{const{getInnerTrackProps:s}=le(),n=ie(),o=s(e,t);return r.jsx(O.div,{...o,className:q("chakra-slider__filled-track",e.className),__css:n.filledTrack})});Ct.displayName="SliderFilledTrack";var rs=L((e,t)=>{const{getMarkerProps:s}=le(),n=ie(),o=s(e,t);return r.jsx(O.div,{...o,className:q("chakra-slider__marker",e.className),__css:n.mark})});rs.displayName="SliderMark";function os(e,t=[]){const s=Object.assign({},e);for(const n of t)n in s&&delete s[n];return s}var as=["h","minH","height","minHeight"],It=L((e,t)=>{const s=Yt("Textarea",e),{className:n,rows:o,...a}=ct(e),l=sn(a),c=o?os(s,as):s;return r.jsx(O.textarea,{ref:t,rows:o,...l,className:Xt("chakra-textarea",n),__css:c})});It.displayName="Textarea";var ls=Re("chevron-left","IconChevronLeft",[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]]),Tt=Re("pin-filled","IconPinFilled",[["path",{d:"M15.113 3.21l.094 .083l5.5 5.5a1 1 0 0 1 -1.175 1.59l-3.172 3.171l-1.424 3.797a1 1 0 0 1 -.158 .277l-.07 .08l-1.5 1.5a1 1 0 0 1 -1.32 .082l-.095 -.083l-2.793 -2.792l-3.793 3.792a1 1 0 0 1 -1.497 -1.32l.083 -.094l3.792 -3.793l-2.792 -2.793a1 1 0 0 1 -.083 -1.32l.083 -.094l1.5 -1.5a1 1 0 0 1 .258 -.187l.098 -.042l3.796 -1.425l3.171 -3.17a1 1 0 0 1 1.497 -1.26z",fill:"currentColor",key:"svg-0",strokeWidth:"0"}]]),Et=Re("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]);const is=({setMediaAct:e,media:t,currentNum:s})=>{const n=l=>{const c=(s+l+t.length)%t.length;e&&e(t[c])},o={width:"100%",height:"100%"};if(t.length===0)return r.jsx("p",{children:"No images found, let's start generating 🪄"});const a=t.at(s);return a?r.jsxs(p,{justifyContent:"center",alignItems:"center",position:"relative",width:o.width,height:o.height,overflow:"hidden",children:[r.jsx("div",{style:{position:"absolute",cursor:"pointer",width:"100%",height:"100%"},onClick:()=>{window.open(a.imageUrl)},children:rn(a.imageUrl)?r.jsx(on,{src:a.imageUrl,alt:`image-${a.id}`,width:"100%",height:"100%",objectFit:"contain"}):r.jsx("video",{style:{objectFit:"contain"},width:"100%",height:"100%",src:a.imageUrl,loop:!0,autoPlay:!0,muted:!0,children:r.jsx("track",{kind:"captions"})})},a.id),r.jsx(M,{size:"sm",color:"white",bgColor:"whiteAlpha.400","aria-label":"Previous image",icon:r.jsx(ls,{}),onClick:()=>n(-1),position:"absolute",left:"0",zIndex:"2"}),r.jsx(M,{size:"sm",color:"white",bgColor:"whiteAlpha.400","aria-label":"Next image",icon:r.jsx(hn,{}),onClick:()=>n(1),position:"absolute",right:"0",zIndex:"2"})]}):null},cs=({inputItem:e})=>r.jsxs(p,{gap:2,children:[r.jsx(p,{gap:1,alignItems:"center",flexBasis:"200px",children:e.label??e.inputName}),r.jsx(an,{value:e.inputValue,onChange:t=>{}})]}),us=e=>{const t=e.inputItem;return r.jsxs(p,{gap:1,direction:"column",children:[r.jsxs(p,{gap:2,children:[r.jsx(p,{gap:1,alignItems:"center",flexBasis:"200px",children:t.label??t.inputName}),r.jsxs(fn,{width:"100%",step:e==null?void 0:e.step,value:t.inputValue,min:e==null?void 0:e.min,max:e==null?void 0:e.max,onChange:s=>{},children:[r.jsx(xn,{}),r.jsxs(gn,{children:[r.jsx(mn,{}),r.jsx(pn,{})]})]})]}),r.jsx(p,{children:r.jsxs(jt,{maxWidth:"400px",step:e==null?void 0:e.step,value:Number(t.inputValue),min:(e==null?void 0:e.min)??0,max:(e==null?void 0:e.max)??100,onChange:s=>{},children:[r.jsx(Pt,{children:r.jsx(Ct,{})}),r.jsx(kt,{})]})})]})},ds=e=>{var s;const{inputItem:t}=e;return r.jsxs(p,{gap:2,children:[r.jsx(p,{gap:1,alignItems:"center",flexBasis:"200px",children:t.label??t.inputName}),r.jsx(wn,{value:t.inputValue,onChange:n=>{},children:(s=e==null?void 0:e.options)==null?void 0:s.map((n,o)=>r.jsx("option",{value:n,children:n},`select${t.nodeID}${t.inputName}${o}`))})]})},hs=e=>{const t=e.inputItem;return r.jsxs(p,{gap:1,direction:"column",children:[r.jsx(p,{children:t.label??t.inputName}),r.jsx(It,{value:t.inputValue,onChange:s=>{},rows:5})]})};var P=(e=>(e.Input="Input",e.InputSlider="InputSlider",e.Select="Select",e.Textarea="Textarea",e.Checkbox="Checkbox",e.NoSupport="NoSupport",e))(P||{});const fs=e=>r.jsxs(p,{gap:2,children:[r.jsx(p,{gap:1,alignItems:"center",flexBasis:"200px",children:e.inputItem.label??e.inputItem.inputName}),r.jsx(p,{children:"No Support"})]}),xs=e=>{const t=e.inputItem;return r.jsxs(p,{gap:2,children:[r.jsx(p,{gap:1,alignItems:"center",flexBasis:"200px",children:t.label??t.inputName}),r.jsx(Ae,{defaultChecked:!!t.inputValue,onChange:s=>{var n;(n=e==null?void 0:e.updateMetaData)==null||n.call(e,{promptKey:e.promptKey,name:e.name,value:s.target.checked})}})]})},ce=d.createContext({topFields:[],calcInputList:[],showNodeName:!1,updateTopField(){}}),gs={[P.Input]:cs,[P.InputSlider]:us,[P.Select]:ds,[P.Textarea]:hs,[P.Checkbox]:xs,NoSupport:fs},ms=LiteGraph.registered_node_types;function ps(e,t){var o,a,l,c,i;const s=(o=ms[e])==null?void 0:o.nodeData,n={...((a=s==null?void 0:s.input)==null?void 0:a.required)??{},...((l=s==null?void 0:s.input)==null?void 0:l.optional)??{}}[t];return(n==null?void 0:n[0])==="STRING"?(c=n==null?void 0:n[1])!=null&&c.multiline?{type:P.Textarea}:{type:P.Input}:(n==null?void 0:n[0])==="BOOLEAN"?{type:P.Checkbox}:(n==null?void 0:n[0])==="FLOAT"?{...(n==null?void 0:n[1])??{},type:P.InputSlider}:(n==null?void 0:n[0])==="INT"?{...(n==null?void 0:n[1])??{},type:P.InputSlider}:Array.isArray(n==null?void 0:n[0])&&((i=n==null?void 0:n[0])!=null&&i.every(u=>typeof u=="string"))?{options:n==null?void 0:n[0],type:P.Select}:{type:P.NoSupport}}const _e=({inputItem:e})=>{const t=ps(e.classType,e.inputName),[s,n]=d.useState(!1),o=gs[t.type??"Input"],{updateTopField:a,topFields:l}=d.useContext(ce),c=e.children[0]==="negative"||e.children[0]==="positive"?`-${e.children[0]}`:"",i={...e,label:e.label??e.inputName+c};return r.jsxs(p,{alignItems:"center",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[r.jsx(M,{size:"xs",onClick:()=>a==null?void 0:a({name:e.inputName,promptKey:e.nodeID,class_type:e.classType}),variant:"ghost",icon:re(l,{name:e.inputName,promptKey:e.nodeID,classType:e.classType})?r.jsx(Tt,{size:14}):r.jsx(Et,{size:14}),"aria-label":"pin"}),r.jsx("div",{style:{flex:1},children:r.jsx(o,{inputItem:i,...t})})]})};function vs(){const{topFields:e,updateTopField:t,calcInputList:s}=d.useContext(ce);return e.length===0?null:r.jsx(r.Fragment,{children:r.jsx(p,{px:2,gap:2,direction:"column",children:e==null?void 0:e.map(n=>{const o=s.find(a=>a.nodeID==n.promptKey&&a.inputName===n.name&&a.classType===n.class_type);return!n.class_type||!o?null:r.jsx(_e,{inputItem:o},`formTopField${n.promptKey}${n.name}`)})})})}function ys(){const{topFields:e,calcInputList:t,showNodeName:s}=d.useContext(ce),n=d.useCallback(a=>{const l=[];return a.forEach(c=>{const i=l[l.length-1];!i||i[0].nodeID!==c.nodeID||i[0].classType!==c.classType?l.push([c]):i.push(c)}),l},[]);if(d.useEffect(()=>{},[s]),!s)return r.jsx(Ee,{children:t.map(a=>re(e,{name:a.inputName,promptKey:a.nodeID,classType:a.classType})?null:r.jsx(_e,{inputItem:a},`form${a.nodeID}${a.inputName}`))});const o=n(t);return r.jsx(Ee,{children:o.map(a=>a[0]?r.jsx(ws,{title:a[0].classType+" #"+a[0].nodeID,children:r.jsx(p,{px:2,gap:1,direction:"column",children:a.map(l=>re(e,{name:l.inputName,promptKey:l.nodeID,classType:l.classType})?null:r.jsx(_e,{inputItem:l},`form${l.nodeID}${l.inputName}`))})},a[0].nodeID):null)})}function ws({title:e,children:t}){return r.jsxs(ht,{border:"1px",borderColor:"gray.500",borderRadius:"md",p:4,children:[r.jsx(W,{size:"sm",mb:1,color:"GrayText",children:e}),r.jsx("div",{children:t})]})}let se=[],ze=new Set;function Nt(e,t){if(!ze.has(e.nodeID))return ze.add(e.nodeID),Object.entries(e.inputs).forEach(([s,n])=>{if(Array.isArray(n)){const o=n[0];Nt(t[o],t)}}),Object.entries(e.inputs).forEach(([s,n])=>{Array.isArray(n)||se.push({classType:e.class_type,inputName:s,inputValue:n,nodeID:e.nodeID,children:e.children||[]})}),se}function Ss(e){se=[],ze=new Set;for(const t of Object.keys(e))e[t].nodeID=t,Object.entries(e[t].inputs).forEach(([s,n])=>{if(Array.isArray(n)){const o=n[0],a=e[o];a.children||(a.children=[]),a.children.push(s)}});for(const t of Object.keys(e))Nt(e[t],e);return se}const re=(e,t)=>e==null?void 0:e.some(s=>s.promptKey===(t==null?void 0:t.promptKey)&&s.name===(t==null?void 0:t.name)&&s.class_type===t.classType);function bs({media:e}){const[t,s]=d.useState([]),{curFlowID:n}=d.useContext(oe),[o,a]=d.useState(),[l,c]=d.useState(!0),[i,u]=d.useState(!0);d.useEffect(()=>{e?ln(`/workspace/view_media?filename=${e.localPath}`).then(m=>{a(m.prompt)}):tt.graphToPrompt(tt.graph).then(m=>{a(m.output)})},[e]),d.useEffect(()=>{if(!o)return;const m=Ss(o);s(m)},[o]);const[g,f]=d.useState([]);d.useEffect(()=>{(async()=>{var m,I;if(n){const y=(I=await((m=R)==null?void 0:m.get(n)))==null?void 0:I.topFieldsConfig;y&&(f(y),c(!1))}})()},[n]);const v=m=>{var I,y;if(re(g,{name:m.name,promptKey:m==null?void 0:m.promptKey,classType:(m==null?void 0:m.class_type)??""})){const w=g.filter(E=>E.name!==m.name||E.promptKey!==m.promptKey);f(w),n&&((I=R)==null||I.updateTopFields(n,{topFieldsConfig:w}))}else{const w=[...g,m];f(w),n&&((y=R)==null||y.updateTopFields(n,{topFieldsConfig:w}))}};return r.jsx(ce.Provider,{value:{topFields:g,showNodeName:i,calcInputList:t,updateTopField:v},children:r.jsxs(p,{direction:"column",align:"stretch",gap:5,children:[r.jsx(vs,{}),r.jsxs(Y,{children:[r.jsx("p",{children:"Show all inputs"}),r.jsx(rt,{isChecked:l,onChange:m=>c(!l)}),r.jsx("p",{children:"Show node names"}),r.jsx(rt,{isChecked:i,onChange:m=>u(!i)})]}),l&&r.jsx(ys,{})]})})}const ue=d.createContext({showAllImages:!1,curMedia:null,setCurMedia(){},setMediaList(){},setShowAllImages(){}}),js=({media:e})=>{var l,c;const[t,s]=d.useState(!1),{setMediaList:n}=d.useContext(ue),{loadFilePath:o}=d.useContext(oe),{showDialog:a}=ut();return d.useEffect(()=>{var i,u;s((e==null?void 0:e.localPath)!=null&&((u=(i=R)==null?void 0:i.curWorkflow)==null?void 0:u.coverMediaPath)===(e==null?void 0:e.localPath))},[e]),e?r.jsxs(p,{flexWrap:"wrap",gap:3,children:[r.jsx(p,{alignItems:"center",gap:2,children:e.localPath&&r.jsxs(r.Fragment,{children:[r.jsx(W,{children:e==null?void 0:e.localPath}),r.jsx(A,{label:"Donwload image from gallery",children:r.jsx(Ne,{href:`/workspace/view_media?filename=${e==null?void 0:e.localPath}`,download:e==null?void 0:e.localPath,children:r.jsx(M,{size:"sm",icon:r.jsx(ft,{size:19}),"aria-label":"donwload image from gallery"})})})]})}),r.jsx(p,{gap:1,alignItems:"center",color:"GrayText",children:!!(e!=null&&e.createTime)&&r.jsx(W,{children:xt((e==null?void 0:e.createTime)??0,!0)})}),r.jsx(A,{label:"Remove image from gallery",children:r.jsx(M,{size:"sm",variant:"ghost",icon:r.jsx(gt,{size:19}),"aria-label":"remove image from gallery",colorScheme:"red",onClick:async()=>{var u;confirm("Are you sure to remove this image from gallery? (won't delete image on your disk)")&&(await((u=F)==null?void 0:u.delete(e.id)),n(g=>g.filter(f=>f.id!==e.id)))}})}),((c=(l=R)==null?void 0:l.curWorkflow)==null?void 0:c.id)&&r.jsx(A,{label:"Set as cover",children:r.jsx(M,{size:"sm",variant:"ghost",icon:t?r.jsx(Tt,{size:19}):r.jsx(Et,{size:19}),"aria-label":"set as cover",onClick:async()=>{var i;await((i=R)==null?void 0:i.updateMetaInfo(R.curWorkflow.id,{coverMediaPath:t?void 0:e.localPath})),s(!t)}})}),r.jsx(dt,{onClick:()=>a("How do you want to load this workflow?",[{label:"Load in new workflow",onClick:()=>{o(e.localPath)},colorScheme:"teal"},{label:"Overwrite current workflow",onClick:()=>o(e.localPath,!0),colorScheme:"red"}]),size:"sm",children:"Load"})]}):null},ks=({media:e})=>r.jsxs(p,{overflowY:"auto",mb:4,direction:"column",gap:2,flex:1,children:[r.jsx(js,{media:e}),r.jsx(bs,{media:e??null})]}),Te=120;function Ps({mediaList:e}){const{curMedia:t,setCurMedia:s}=d.useContext(ue);return r.jsxs(p,{gap:3,h:"100%",children:[r.jsxs(Sn,{gridTemplateRows:e.length<=6?"1fr 20%":"1fr",flex:1,gap:2,children:[r.jsx("div",{style:{height:"56vh"},children:r.jsx(is,{media:e.map(n=>({id:n.id,imageUrl:`/workspace/view_media?filename=${n.localPath}`})),currentNum:(e==null?void 0:e.findIndex(n=>n.id===(t==null?void 0:t.id)))??0,setMediaAct:n=>s((e==null?void 0:e.find(o=>o.id===n.id))??null)})}),r.jsx(p,{wrap:"wrap",children:e==null?void 0:e.map(n=>r.jsx(ht,{display:"inline-block",p:1,borderRadius:"4px",width:`${Te+3}px`,height:`${Te+3}px`,cursor:"pointer",border:(t==null?void 0:t.id)===n.id?"1px solid gray":"",onClick:()=>s(n),children:r.jsx(mt,{mediaLocalPath:n.localPath,size:Te,objectFit:"contain",hideBrokenImage:!0,onBrokenLink:()=>{var o;(o=F)==null||o.delete(n.id)}})},`image-bottom-${n.id}`))})]}),r.jsx(ks,{media:t??void 0})]})}const Cs=({media:e,isSelecting:t,selectedID:s,onClickMedia:n})=>{const{curFlowID:a,loadFilePath:l}=d.useContext(oe),{showDialog:c}=ut();if(e.localPath==null||a==null)return null;const i=r.jsxs(Ne,{isExternal:!0,onClick:()=>n(e),position:"relative",children:[t&&r.jsx(Ae,{isChecked:s.includes(e.id),position:"absolute",top:2,left:2}),r.jsx(mt,{mediaLocalPath:e.localPath,size:180,onBrokenLink:()=>{var u;(u=F)==null||u.delete(e.id)},hideBrokenImage:!0,autoPlay:!0,isPreview:!0})]});return r.jsxs(Ee,{width:180,mb:2,children:[r.jsx(A,{label:xt(e.createTime,!0),children:i}),r.jsx(A,{label:e.localPath,children:r.jsx(W,{color:"GrayText",noOfLines:1,children:e.localPath})}),r.jsxs(Y,{hidden:t,gap:0,children:[r.jsx(dt,{flexGrow:1,onClick:()=>c("How do you want to load this workflow?",[{label:"Load in new workflow",onClick:()=>{l(e.localPath)},colorScheme:"teal"},{label:"Overwrite current workflow",onClick:()=>l(e.localPath,!0),colorScheme:"red"}]),size:"sm",children:"Load"}),r.jsx(A,{label:"Donwload image from gallery",children:r.jsx(Ne,{href:`/workspace/view_media?filename=${e.localPath}`,download:e.localPath,children:r.jsx(M,{size:"sm",variant:"ghost",icon:r.jsx(ft,{size:19}),"aria-label":"donwload image from gallery"})})}),r.jsx(A,{label:"Remove image from gallery",children:r.jsx(M,{size:"sm",variant:"ghost",icon:r.jsx(gt,{size:19}),"aria-label":"remove image from gallery",colorScheme:"red",onClick:async()=>{var g;confirm("Are you sure to remove this image from gallery? (won't delete image on your disk)")&&await((g=F)==null?void 0:g.delete(e.id))}})})]})]})},Is=Cs;function Ts({searchQuery:e}){const[t,s]=d.useState([]),{setCurMedia:n,setShowAllImages:o,setMediaList:a}=d.useContext(ue);d.useEffect(()=>{var c,i;e===""?(c=F)==null||c.listAll().then(u=>{s(u.slice(0,50)??[])}):(i=F)==null||i.filter(u=>{var g;return((g=u.workflowJSON)==null?void 0:g.includes(e))??!1}).then(u=>{s(u)})},[e]);const l=c=>{a([c].concat(t.filter(i=>i.id!==c.id))),n(c),o(!1)};return r.jsx(Y,{wrap:"wrap",children:t.map(c=>r.jsx(Is,{selectedID:[],media:c,isSelecting:!1,onClickMedia:l},c.id))})}function Vs({onclose:e}){const{curFlowID:t}=d.useContext(oe),[s,n]=d.useState(""),[o,a]=d.useState([]),[l,c]=d.useState(!1),[i,u]=d.useState([]),[g,f]=d.useState(),[v,m]=d.useState(""),I=vn(v,300),[y,w]=d.useState(!1),E=async()=>{var D;if(t==null)return;const b=await((D=F)==null?void 0:D.listByWorkflowID(t));u(b??[]),b!=null&&b.length&&f(b[0])};if(d.useEffect(()=>{var b;E(),t&&((b=R)==null||b.get(t).then(D=>{D&&n(D.name)}))},[]),t==null)return null;const $=i.length>0&&o.length===i.length;return r.jsx(ue.Provider,{value:{curMedia:g??null,setCurMedia:f,setMediaList:u,showAllImages:y,setShowAllImages:w},children:r.jsxs(Zt,{isOpen:!0,onClose:e,blockScrollOnMount:!0,children:[r.jsx(qt,{}),r.jsxs(Jt,{width:"90%",maxWidth:"90vw",height:"90vh",children:[r.jsxs(Qt,{children:[r.jsxs(Y,{gap:2,mb:2,children:[r.jsxs(cn,{size:"md",mr:2,children:["Gallery - ",s]}),r.jsx(yn,{searchValue:v,onUpdateSearchValue:b=>{m(b),y||w(!0)},placeholder:"Search prompt, model name, etc.",style:{width:"300px"}})]}),l&&r.jsxs(Y,{gap:3,children:[r.jsx(Ae,{isChecked:$,onChange:()=>{a($?[]:i.map(b=>b.id))},children:"All"}),r.jsxs(W,{fontSize:16,children:[o.length," Selected"]}),r.jsx(M,{size:"sm",icon:r.jsx(un,{size:19}),onClick:()=>c(!1),"aria-label":"cancel"})]})]}),r.jsx(en,{}),r.jsx(tn,{overflowY:"auto",children:y?r.jsx(Ts,{searchQuery:I}):r.jsx(Ps,{mediaList:i})})]})]})})}export{Vs as default}; diff --git a/dist/workspace_web/IconCopy-D2k-9fMf.js b/dist/workspace_web/IconCopy-Ge1LD4_a.js similarity index 83% rename from dist/workspace_web/IconCopy-D2k-9fMf.js rename to dist/workspace_web/IconCopy-Ge1LD4_a.js index 88b4a3b..0fae38c 100644 --- a/dist/workspace_web/IconCopy-D2k-9fMf.js +++ b/dist/workspace_web/IconCopy-Ge1LD4_a.js @@ -1 +1 @@ -import{d as a}from"./App-eQybp91e.js";var p=a("copy","IconCopy",[["path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]);export{p as I}; +import{d as a}from"./App-Pi18TWng.js";var p=a("copy","IconCopy",[["path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]);export{p as I}; diff --git a/dist/workspace_web/IconSearch-3Gq-3maw.js b/dist/workspace_web/IconSearch-xcUfhAk-.js similarity index 67% rename from dist/workspace_web/IconSearch-3Gq-3maw.js rename to dist/workspace_web/IconSearch-xcUfhAk-.js index 53476c0..b01599d 100644 --- a/dist/workspace_web/IconSearch-3Gq-3maw.js +++ b/dist/workspace_web/IconSearch-xcUfhAk-.js @@ -1 +1 @@ -import{d as a}from"./App-eQybp91e.js";var r=a("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);export{r as I}; +import{d as a}from"./App-Pi18TWng.js";var r=a("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]);export{r as I}; diff --git a/dist/workspace_web/InstallMissingModelsButton-s0RcQvMb.js b/dist/workspace_web/InstallMissingModelsButton-s0RcQvMb.js deleted file mode 100644 index 80f5a45..0000000 --- a/dist/workspace_web/InstallMissingModelsButton-s0RcQvMb.js +++ /dev/null @@ -1 +0,0 @@ -import{r as o,j as e,i as C,P as b}from"./input.js";import{a5 as x,aj as S,g as I,h as v,H as y,i as k,ae as E,_ as F,aq as A,Z as D,av as z,f as H,B as L,a6 as P,a7 as R,aS as T,F as G,ag as O,aH as q}from"./App-eQybp91e.js";import{G as N,i as U}from"./ModelManagerTopbar-vr3vytmQ.js";import{C as W,G as B}from"./chunk-JARCRF6W-OjDz07lE.js";import{S as K}from"./chunk-3RSXBRAN-LXNJ9qB5.js";import"/scripts/api.js";import"./chunk-7D6N5TE5-lFR77IBa.js";const Y="https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo.png",Z="https://images.crunchbase.com/image/upload/c_pad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/gtxrcmtsvpjjevozblfa";function $({model:l,selectedModelDeps:c,setSelectedModelDeps:n,foldersList:d,setFoldersList:h}){var m,t,a,g,_;const[s,u]=o.useState(),p=(a=(t=(m=x.graph.extra)==null?void 0:m[S])==null?void 0:t.deps)==null?void 0:a.models;o.useEffect(()=>{(async()=>{var f;if(p){const M=p[l.received_value];if((f=p[l.received_value])!=null&&f.downloadUrl){const w=await A.models.where({fileHash:M.fileHash}).toArray();w[0]?u({existingModel:w[0].fileName}):u(M)}}})()},[]);const j=c.map(i=>i.filename);function r(i){return i.existingModel!=null}return e.jsx(N,{p:3,shadow:"md",borderWidth:"1px",children:e.jsxs(I,{align:"start",children:[e.jsx(v,{children:l.class_type}),e.jsx(y,{ml:3,children:e.jsx(v,{color:"red.400",children:l.received_value})}),s&&r(s)&&e.jsxs(v,{children:["This model is already installed as"," ",e.jsx(v,{as:"span",color:"blue.400",fontWeight:600,children:s.existingModel})]}),s&&!r(s)&&s.fileFolder&&e.jsxs(e.Fragment,{children:[e.jsxs(y,{children:[e.jsx(W,{size:"sm",isChecked:j.includes(s.filename),onChange:i=>{i.target.checked?n([...c,p[l.received_value]]):n(c.filter(f=>f.filename!==s.filename))}},s.filename),e.jsx(k,{label:s.infoUrl,children:e.jsx(C,{size:"sm",onClick:i=>{i.stopPropagation(),window.open(s.infoUrl??"","_blank")},leftIcon:e.jsx(E,{width:5,src:(g=s.downloadUrl)!=null&&g.includes("huggingface")?Y:Z}),rightIcon:e.jsx(F,{size:20}),children:s.filename})})]}),e.jsxs(I,{children:[e.jsx(v,{width:"fit-content",children:"Install path:"}),((_=d[s.fileFolder])==null?void 0:_.length)&&e.jsx(K,{value:d[s.fileFolder].at(0),onChange:i=>{const f={...d},M=f[s.fileFolder].filter(w=>w!==i.target.value);f[s.fileFolder]=[i.target.value,...M],h(f)},children:d[s.fileFolder].map(i=>e.jsx("option",{value:i,children:i},i))})]})]}),!s&&e.jsx(C,{colorScheme:"blue",mt:5,iconSpacing:1,leftIcon:e.jsx(F,{size:20}),size:"sm",onClick:()=>{window.open(`https://civitai.com/search/models?sortBy=models_v7&query=${l.received_value}`,"_blank")},children:"Search in CivitAI"})]})})}function V({onClose:l,missingModels:c}){o.useEffect(()=>(x.canvasEl.addEventListener("click",l),()=>{x.canvasEl.removeEventListener("click",l)}),[]);const[n,d]=o.useState([]),[h,s]=o.useState({}),{setRoute:u}=o.useContext(D),p=o.useCallback(async()=>{const t=await z();t&&s(t)},[]),j=H();o.useEffect(()=>{p()},[]);const r=480,m=()=>{n.forEach(t=>{let a=t.downloadUrl;if(!a||!t.fileFolder||!h[t.fileFolder][0]){j({title:"Error",description:a?"Model install folder path is missing":"Download URL is missing",status:"error",duration:4e3,isClosable:!0});return}if(a.includes("civitai")){const g=q();g&&(a+=`?token=${g}`)}U({file_hash:t.fileHash??void 0,filename:t.filename,save_path:h[t.fileFolder][0],url:a,force_filename:!0})}),j({title:"Installing...Please open Install Models modal or python terminal to view progress.",description:n.map(t=>t.filename).join(", "),status:"info",duration:4e3,isClosable:!0}),u("installModels")};return e.jsx(b,{children:e.jsx(L,{style:{width:r},children:e.jsxs(P,{width:r,height:"100vh",p:4,gap:2,position:"fixed",top:0,left:0,shadow:"xl",zIndex:R,overflowY:"auto",children:[e.jsx(T,{children:e.jsx(G,{justifyContent:"space-between",alignContent:"center",children:e.jsx(O,{size:"md",mr:2,children:"Missing Models"})})}),e.jsxs(C,{width:"fit-content",colorScheme:"teal",size:"sm",onClick:m,children:["Install Selected (",n.length,")"]}),e.jsx(B,{templateColumns:"1",gap:1,marginTop:2,width:"100%",children:c.map(t=>e.jsx($,{model:t,setSelectedModelDeps:d,selectedModelDeps:n,foldersList:h,setFoldersList:s},t.received_value))})]})})})}function ae({}){const[l,c]=o.useState(!1),[n,d]=o.useState([]);return o.useEffect(()=>{const h=x.queuePrompt;x.queuePrompt=async function(){var s,u;try{await h.apply(this,arguments)}finally{if(!((u=(s=x.graph.extra)==null?void 0:s[S])==null?void 0:u.deps))return;const j=x.lastNodeErrors??{};d(Object.values(j).flatMap(r=>{var m,t;return(t=(m=r==null?void 0:r.errors)==null?void 0:m.filter(a=>(a==null?void 0:a.type)==="value_not_in_list"))==null?void 0:t.map(a=>{const{input_name:g,received_value:_}=a.extra_info;return{class_type:r.class_type,input_name:g,received_value:_}})}))}}},[]),n.length===0?null:e.jsxs(e.Fragment,{children:[e.jsxs(C,{size:"sm","aria-label":"missing models",px:2,onClick:()=>c(!0),colorScheme:"teal",children:["Install Missing (",n.length,")"]}),l&&e.jsx(V,{onClose:()=>c(!1),missingModels:n})]})}export{ae as default}; diff --git a/dist/workspace_web/MediaPreview-AxH1rOBH.js b/dist/workspace_web/MediaPreview-AxH1rOBH.js new file mode 100644 index 0000000..ab5e416 --- /dev/null +++ b/dist/workspace_web/MediaPreview-AxH1rOBH.js @@ -0,0 +1 @@ +import{d as D,r as l,j as v,I as Ee,x as Te,y as je,m as ae,q as _,p as se,b as Pe,f as T,g as Y,k as Be,o as Ke,e as Ve}from"./input.js";import{ad as Ge,ae as We,d as Le,B as qe,I as ze,y as He,j as Xe,ab as $e}from"./App-Pi18TWng.js";import{I as Ye}from"./IconSearch-xcUfhAk-.js";import{I as Je}from"./chunk-7D6N5TE5-ZfhYDM9i.js";function Qe(t){const e=parseFloat(t);return typeof e!="number"||Number.isNaN(e)?0:e}function ie(t,e){let r=Qe(t);const a=10**(e??10);return r=Math.round(r*a)/a,e?r.toFixed(e):r.toString()}function ue(t){if(!Number.isFinite(t))return 0;let e=1,r=0;for(;Math.round(t*e)/e!==t;)e*=10,r+=1;return r}function Ct(t,e,r){return(t-e)*100/(r-e)}function It(t,e,r){return(r-e)*t+e}function St(t,e,r){const a=Math.round((t-e)/r)*r+e,i=ue(r);return ie(a,i)}function Ze(t,e,r){return t==null?t:(r{var g;return a==null?"":(g=oe(a,s,r))!=null?g:""}),x=typeof i<"u",h=x?i:m,I=Me(P(h),s),S=r??I,A=l.useCallback(g=>{g!==h&&(x||w(g.toString()),c==null||c(g.toString(),P(g)))},[c,x,h]),k=l.useCallback(g=>{let b=g;return f&&(b=Ze(b,u,o)),ie(b,S)},[S,f,o,u]),j=l.useCallback((g=s)=>{let b;h===""?b=P(g):b=P(h)+g,b=k(b),A(b)},[k,s,A,h]),B=l.useCallback((g=s)=>{let b;h===""?b=P(-g):b=P(h)-g,b=k(b),A(b)},[k,s,A,h]),K=l.useCallback(()=>{var g;let b;a==null?b="":b=(g=oe(a,s,r))!=null?g:u,A(b)},[a,r,s,A,u]),Q=l.useCallback(g=>{var b;const ee=(b=oe(g,s,S))!=null?b:u;A(ee)},[S,s,A,u]),V=P(h);return{isOutOfRange:V>o||Vv.jsx(Ee,{viewBox:"0 0 24 24",...t,children:v.jsx("path",{fill:"currentColor",d:"M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z"})}),nt=t=>v.jsx(Ee,{viewBox:"0 0 24 24",...t,children:v.jsx("path",{fill:"currentColor",d:"M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z"})});function _e(t,e,r,a){l.useEffect(()=>{var i;if(!t.current||!a)return;const s=(i=t.current.ownerDocument.defaultView)!=null?i:window,u=Array.isArray(e)?e:[e],o=new s.MutationObserver(f=>{for(const c of f)c.type==="attributes"&&c.attributeName&&u.includes(c.attributeName)&&r(c)});return o.observe(t.current,{attributes:!0,attributeFilter:u}),()=>o.disconnect()})}function rt(t,e){const r=D(t);l.useEffect(()=>{let a=null;const i=()=>r();return e!==null&&(a=window.setInterval(i,e)),()=>{a&&window.clearInterval(a)}},[e,r])}var at=50,ke=300;function st(t,e){const[r,a]=l.useState(!1),[i,s]=l.useState(null),[u,o]=l.useState(!0),f=l.useRef(null),c=()=>clearTimeout(f.current);rt(()=>{i==="increment"&&t(),i==="decrement"&&e()},r?at:null);const m=l.useCallback(()=>{u&&t(),f.current=setTimeout(()=>{o(!1),a(!0),s("increment")},ke)},[t,u]),w=l.useCallback(()=>{u&&e(),f.current=setTimeout(()=>{o(!1),a(!0),s("decrement")},ke)},[e,u]),x=l.useCallback(()=>{o(!0),a(!1),c()},[]);return l.useEffect(()=>()=>c(),[]),{up:m,down:w,stop:x,isSpinning:r}}var ot=/^[Ee0-9+\-.]$/;function ut(t){return ot.test(t)}function it(t,e){if(t.key==null)return!0;const r=t.ctrlKey||t.altKey||t.metaKey;return!(t.key.length===1)||r?!0:e(t.key)}function lt(t={}){const{focusInputOnChange:e=!0,clampValueOnBlur:r=!0,keepWithinRange:a=!0,min:i=Number.MIN_SAFE_INTEGER,max:s=Number.MAX_SAFE_INTEGER,step:u=1,isReadOnly:o,isDisabled:f,isRequired:c,isInvalid:m,pattern:w="[0-9]*(.[0-9]+)?",inputMode:x="decimal",allowMouseWheel:h,id:I,onChange:S,precision:A,name:k,"aria-describedby":j,"aria-label":B,"aria-labelledby":K,onFocus:Q,onBlur:V,onInvalid:ce,getAriaValueText:fe,isValidCharacter:Z,format:g,parse:b,...ee}=t,te=D(Q),de=D(V),R=D(ce),G=D(Z??ut),ne=D(fe),d=et(t),{update:U,increment:pe,decrement:me}=d,[Fe,re]=l.useState(!1),W=!(o||f),E=l.useRef(null),L=l.useRef(null),be=l.useRef(null),ge=l.useRef(null),q=l.useCallback(n=>n.split("").filter(G).join(""),[G]),z=l.useCallback(n=>{var p;return(p=b==null?void 0:b(n))!=null?p:n},[b]),F=l.useCallback(n=>{var p;return((p=g==null?void 0:g(n))!=null?p:n).toString()},[g]);Te(()=>{(d.valueAsNumber>s||d.valueAsNumber{if(!E.current)return;if(E.current.value!=d.value){const p=z(E.current.value);d.setValue(q(p))}},[z,q]);const H=l.useCallback((n=u)=>{W&&pe(n)},[pe,W,u]),X=l.useCallback((n=u)=>{W&&me(n)},[me,W,u]),N=st(H,X);_e(be,"disabled",N.stop,N.isSpinning),_e(ge,"disabled",N.stop,N.isSpinning);const he=l.useCallback(n=>{if(n.nativeEvent.isComposing)return;const y=z(n.currentTarget.value);U(q(y)),L.current={start:n.currentTarget.selectionStart,end:n.currentTarget.selectionEnd}},[U,q,z]),ve=l.useCallback(n=>{var p,y,C;te==null||te(n),L.current&&(n.target.selectionStart=(y=L.current.start)!=null?y:(p=n.currentTarget.value)==null?void 0:p.length,n.currentTarget.selectionEnd=(C=L.current.end)!=null?C:n.currentTarget.selectionStart)},[te]),ye=l.useCallback(n=>{if(n.nativeEvent.isComposing)return;it(n,G)||n.preventDefault();const p=we(n)*u,y=n.key,M={ArrowUp:()=>H(p),ArrowDown:()=>X(p),Home:()=>U(i),End:()=>U(s)}[y];M&&(n.preventDefault(),M(n))},[G,u,H,X,U,i,s]),we=n=>{let p=1;return(n.metaKey||n.ctrlKey)&&(p=.1),n.shiftKey&&(p=10),p},xe=l.useMemo(()=>{const n=ne==null?void 0:ne(d.value);if(n!=null)return n;const p=d.value.toString();return p||void 0},[d.value,ne]),Ne=l.useCallback(()=>{let n=d.value;if(d.value==="")return;/^[eE]/.test(d.value.toString())?d.setValue(""):(d.valueAsNumbers&&(n=s),d.cast(n))},[d,s,i]),Ce=l.useCallback(()=>{re(!1),r&&Ne()},[r,re,Ne]),$=l.useCallback(()=>{e&&requestAnimationFrame(()=>{var n;(n=E.current)==null||n.focus()})},[e]),Ie=l.useCallback(n=>{n.preventDefault(),N.up(),$()},[$,N]),Se=l.useCallback(n=>{n.preventDefault(),N.down(),$()},[$,N]);Ge(()=>E.current,"wheel",n=>{var p,y;const M=((y=(p=E.current)==null?void 0:p.ownerDocument)!=null?y:document).activeElement===E.current;if(!h||!M)return;n.preventDefault();const O=we(n)*u,Ae=Math.sign(n.deltaY);Ae===-1?H(O):Ae===1&&X(O)},{passive:!1});const Re=l.useCallback((n={},p=null)=>{const y=f||a&&d.isAtMax;return{...n,ref:ae(p,be),role:"button",tabIndex:-1,onPointerDown:_(n.onPointerDown,C=>{C.button!==0||y||Ie(C)}),onPointerLeave:_(n.onPointerLeave,N.stop),onPointerUp:_(n.onPointerUp,N.stop),disabled:y,"aria-disabled":se(y)}},[d.isAtMax,a,Ie,N.stop,f]),Ue=l.useCallback((n={},p=null)=>{const y=f||a&&d.isAtMin;return{...n,ref:ae(p,ge),role:"button",tabIndex:-1,onPointerDown:_(n.onPointerDown,C=>{C.button!==0||y||Se(C)}),onPointerLeave:_(n.onPointerLeave,N.stop),onPointerUp:_(n.onPointerUp,N.stop),disabled:y,"aria-disabled":se(y)}},[d.isAtMin,a,Se,N.stop,f]),Oe=l.useCallback((n={},p=null)=>{var y,C,M,O;return{name:k,inputMode:x,type:"text",pattern:w,"aria-labelledby":K,"aria-label":B,"aria-describedby":j,id:I,disabled:f,...n,readOnly:(y=n.readOnly)!=null?y:o,"aria-readonly":(C=n.readOnly)!=null?C:o,"aria-required":(M=n.required)!=null?M:c,required:(O=n.required)!=null?O:c,ref:ae(E,p),value:F(d.value),role:"spinbutton","aria-valuemin":i,"aria-valuemax":s,"aria-valuenow":Number.isNaN(d.valueAsNumber)?void 0:d.valueAsNumber,"aria-invalid":se(m??d.isOutOfRange),"aria-valuetext":xe,autoComplete:"off",autoCorrect:"off",onChange:_(n.onChange,he),onKeyDown:_(n.onKeyDown,ye),onFocus:_(n.onFocus,ve,()=>re(!0)),onBlur:_(n.onBlur,de,Ce)}},[k,x,w,K,B,F,j,I,f,c,o,m,d.value,d.valueAsNumber,d.isOutOfRange,i,s,xe,he,ye,ve,de,Ce]);return{value:F(d.value),valueAsNumber:d.valueAsNumber,isFocused:Fe,isDisabled:f,isReadOnly:o,getIncrementButtonProps:Re,getDecrementButtonProps:Ue,getInputProps:Oe,htmlProps:ee}}var[ct,J]=Pe({name:"NumberInputStylesContext",errorMessage:`useNumberInputStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[ft,le]=Pe({name:"NumberInputContext",errorMessage:"useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within "}),dt=T(function(e,r){const a=Be("NumberInput",e),i=Ke(e),s=We(i),{htmlProps:u,...o}=lt(s),f=l.useMemo(()=>o,[o]);return v.jsx(ft,{value:f,children:v.jsx(ct,{value:a,children:v.jsx(Y.div,{...u,ref:r,className:Ve("chakra-numberinput",e.className),__css:{position:"relative",zIndex:0,...a.root}})})})});dt.displayName="NumberInput";var pt=T(function(e,r){const a=J();return v.jsx(Y.div,{"aria-hidden":!0,ref:r,...e,__css:{display:"flex",flexDirection:"column",position:"absolute",top:"0",insetEnd:"0px",margin:"1px",height:"calc(100% - 2px)",zIndex:1,...a.stepperGroup}})});pt.displayName="NumberInputStepper";var mt=T(function(e,r){const{getInputProps:a}=le(),i=a(e,r),s=J();return v.jsx(Y.input,{...i,className:Ve("chakra-numberinput__field",e.className),__css:{width:"100%",...s.field}})});mt.displayName="NumberInputField";var De=Y("div",{baseStyle:{display:"flex",justifyContent:"center",alignItems:"center",flex:1,transitionProperty:"common",transitionDuration:"normal",userSelect:"none",cursor:"pointer",lineHeight:"normal"}}),bt=T(function(e,r){var a;const i=J(),{getDecrementButtonProps:s}=le(),u=s(e,r);return v.jsx(De,{...u,__css:i.stepper,children:(a=e.children)!=null?a:v.jsx(tt,{})})});bt.displayName="NumberDecrementStepper";var gt=T(function(e,r){var a;const{getIncrementButtonProps:i}=le(),s=i(e,r),u=J();return v.jsx(De,{...s,__css:u.stepper,children:(a=e.children)!=null?a:v.jsx(nt,{})})});gt.displayName="NumberIncrementStepper";var At=Le("chevron-right","IconChevronRight",[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]]);const _t=(t,e)=>{const[r,a]=l.useState(t);return l.useEffect(()=>{const i=setTimeout(()=>{a(t)},e);return()=>{clearTimeout(i)}},[t,e]),r},ht={position:"absolute",marginLeft:"10px",width:"20px",height:"20px",top:"50%",color:"#A0AEC0",transform:"translateY(-50%)"};function kt(t){const{searchValue:e,onUpdateSearchValue:r,style:a}=t,i=e!=="";return v.jsxs(qe,{style:{position:"relative",...a},mb:2,children:[v.jsx(Ye,{style:ht}),i&&v.jsx(ze,{size:"xs",position:"absolute",right:"5px",top:"50%",transform:"translateY(-50%)",cursor:"pointer",background:"none",zIndex:"100",icon:v.jsx(He,{width:15,height:15}),onClick:()=>r(""),"aria-label":"clear input button"}),v.jsx(Xe,{placeholder:t.placeholder??"Search",size:"sm",paddingLeft:"35px",paddingBlock:"5px",value:e,onChange:({target:s})=>r(s.value)})]})}function Et(t){return new Promise((e,r)=>{const a=new FileReader;a.onload=i=>{const s=new Uint8Array(i.target.result),u=new DataView(s.buffer);u.getUint32(0)!==2303741511&&(console.error("Not a valid PNG file"),r());let o=8;const f={};for(;oString.fromCharCode(S)).join("");f[x]=I}o+=12+c}e(f)},a.readAsArrayBuffer(t)})}function vt(t){const e=new Uint16Array(t.slice(0,2))[0]===18761;function r(u,o,f){const c=t.slice(u,u+f);if(f===2)return new DataView(c.buffer,c.byteOffset,c.byteLength).getUint16(0,o);if(f===4)return new DataView(c.buffer,c.byteOffset,c.byteLength).getUint32(0,o)}const a=r(4,e,4);function i(u){const o=r(u,e,2),f={};for(let c=0;c{const r=new FileReader;r.onload=a=>{var f;const i=new Uint8Array((f=a==null?void 0:a.target)==null?void 0:f.result),s=new DataView(i.buffer);if(s.getUint32(0)!==1380533830||s.getUint32(8)!==1464156752){console.error("Not a valid WEBP file"),e();return}let u=12;const o={};for(;u{const r=new FileReader;r.onload=a=>{const i=new Uint8Array(a.target.result),s=new DataView(i.buffer),u=new TextDecoder;if(s.getUint32(0)==440786851){let o=12;for(;o>8*(4-m)&~(1<<7*m),x=u.decode(i.slice(o+2+m,o+2+m+w)),h=JSON.parse(x);e(h);return}}o+=1}}else if(s.getUint32(4)==1718909296&&s.getUint32(8)==1769172845){let o=i.length-4;for(;o>16;){if(s.getUint32(o)==1684108385&&s.getUint32(o-8)==2841865588){s.getUint32(o+4),s.getUint32(o+8);const f=s.getUint32(o-4)-4*4,c=u.decode(i.slice(o+12,o+12+f)),m=JSON.parse(c);e(m);return}o-=1}}else{console.error("Unknown magic: "+s.getUint32(0)),e();return}},r.readAsArrayBuffer(t)})}function Dt({mediaLocalPath:t,size:e,isPreview:r,autoPlay:a,hideBrokenImage:i,objectFit:s,onBrokenLink:u}){const[o,f]=l.useState(!0);return l.useEffect(()=>{i&&(async()=>{try{if((await fetch(r?`/workspace/preview_media?filename=${t}`:`/workspace/view_media?filename=${t}`)).status==404){f(!1),u==null||u();return}}catch(m){console.error("Error checking media exists",m)}})()},[]),o?$e(t)?v.jsx(Je,{borderRadius:3,boxSize:`${e}px`,objectFit:s??"cover",src:`/workspace/view_media?filename=${t}`,alt:"workflow image renamed or moved from output folder"}):v.jsx("div",{style:{width:e+"px",height:e+"px",overflow:"hidden",position:"relative"},children:v.jsx("video",{width:e,height:e,src:`/workspace/view_media?filename=${t}`,loop:!0,autoPlay:a??!1,muted:!0,style:{objectFit:"cover",width:"100%",height:"100%"},children:v.jsx("track",{kind:"captions"})})}):null}export{At as I,Dt as M,dt as N,kt as S,mt as a,Mt as b,Ze as c,Pt as d,pt as e,gt as f,Et as g,bt as h,Vt as i,It as p,St as r,_t as u,Ct as v}; diff --git a/dist/workspace_web/MediaPreview-gKBl9R3H.js b/dist/workspace_web/MediaPreview-gKBl9R3H.js deleted file mode 100644 index 0a02a88..0000000 --- a/dist/workspace_web/MediaPreview-gKBl9R3H.js +++ /dev/null @@ -1 +0,0 @@ -import{d as M,r as s,j as f,I as ke,y as Oe,e as Be,m as ae,s as C,q as se,b as Pe,f as j,g as Y,l as Ke,o as Ue,h as Me}from"./input.js";import{ah as Ge,ai as qe,d as He,B as Le,I as $e,y as ze,j as We,ad as Xe,ae as Ye}from"./App-eQybp91e.js";import{I as Je}from"./IconSearch-3Gq-3maw.js";function Qe(n){const e=parseFloat(n);return typeof e!="number"||Number.isNaN(e)?0:e}function le(n,e){let r=Qe(n);const a=10**(e??10);return r=Math.round(r*a)/a,e?r.toFixed(e):r.toString()}function oe(n){if(!Number.isFinite(n))return 0;let e=1,r=0;for(;Math.round(n*e)/e!==n;)e*=10,r+=1;return r}function It(n,e,r){return(n-e)*100/(r-e)}function yt(n,e,r){return(r-e)*n+e}function Ct(n,e,r){const a=Math.round((n-e)/r)*r+e,u=oe(r);return le(a,u)}function Ze(n,e,r){return n==null?n:(r{var p;return a==null?"":(p=ue(a,o,r))!=null?p:""}),S=typeof u<"u",x=S?u:I,O=Fe(A(x),o),F=r??O,y=s.useCallback(p=>{p!==x&&(S||E(p.toString()),h==null||h(p.toString(),A(p)))},[h,S,x]),w=s.useCallback(p=>{let d=p;return b&&(d=Ze(d,i,m)),le(d,F)},[F,b,m,i]),B=s.useCallback((p=o)=>{let d;x===""?d=A(p):d=A(x)+p,d=w(d),y(d)},[w,o,y,x]),K=s.useCallback((p=o)=>{let d;x===""?d=A(-p):d=A(x)-p,d=w(d),y(d)},[w,o,y,x]),U=s.useCallback(()=>{var p;let d;a==null?d="":d=(p=ue(a,o,r))!=null?p:i,y(d)},[a,r,o,y,i]),Q=s.useCallback(p=>{var d;const ee=(d=ue(p,o,F))!=null?d:i;y(ee)},[F,o,y,i]),k=A(x);return{isOutOfRange:k>m||kf.jsx(ke,{viewBox:"0 0 24 24",...n,children:f.jsx("path",{fill:"currentColor",d:"M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z"})}),nt=n=>f.jsx(ke,{viewBox:"0 0 24 24",...n,children:f.jsx("path",{fill:"currentColor",d:"M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z"})});function Ae(n,e,r,a){s.useEffect(()=>{var u;if(!n.current||!a)return;const o=(u=n.current.ownerDocument.defaultView)!=null?u:window,i=Array.isArray(e)?e:[e],m=new o.MutationObserver(b=>{for(const h of b)h.type==="attributes"&&h.attributeName&&i.includes(h.attributeName)&&r(h)});return m.observe(n.current,{attributes:!0,attributeFilter:i}),()=>m.disconnect()})}function rt(n,e){const r=M(n);s.useEffect(()=>{let a=null;const u=()=>r();return e!==null&&(a=window.setInterval(u,e)),()=>{a&&window.clearInterval(a)}},[e,r])}var at=50,Ee=300;function st(n,e){const[r,a]=s.useState(!1),[u,o]=s.useState(null),[i,m]=s.useState(!0),b=s.useRef(null),h=()=>clearTimeout(b.current);rt(()=>{u==="increment"&&n(),u==="decrement"&&e()},r?at:null);const I=s.useCallback(()=>{i&&n(),b.current=setTimeout(()=>{m(!1),a(!0),o("increment")},Ee)},[n,i]),E=s.useCallback(()=>{i&&e(),b.current=setTimeout(()=>{m(!1),a(!0),o("decrement")},Ee)},[e,i]),S=s.useCallback(()=>{m(!0),a(!1),h()},[]);return s.useEffect(()=>()=>h(),[]),{up:I,down:E,stop:S,isSpinning:r}}var ut=/^[Ee0-9+\-.]$/;function ot(n){return ut.test(n)}function lt(n,e){if(n.key==null)return!0;const r=n.ctrlKey||n.altKey||n.metaKey;return!(n.key.length===1)||r?!0:e(n.key)}function it(n={}){const{focusInputOnChange:e=!0,clampValueOnBlur:r=!0,keepWithinRange:a=!0,min:u=Number.MIN_SAFE_INTEGER,max:o=Number.MAX_SAFE_INTEGER,step:i=1,isReadOnly:m,isDisabled:b,isRequired:h,isInvalid:I,pattern:E="[0-9]*(.[0-9]+)?",inputMode:S="decimal",allowMouseWheel:x,id:O,onChange:F,precision:y,name:w,"aria-describedby":B,"aria-label":K,"aria-labelledby":U,onFocus:Q,onBlur:k,onInvalid:ce,getAriaValueText:de,isValidCharacter:Z,format:p,parse:d,...ee}=n,te=M(Q),pe=M(k),V=M(ce),G=M(Z??ot),ne=M(de),l=et(n),{update:T,increment:me,decrement:fe}=l,[Ve,re]=s.useState(!1),q=!(m||b),_=s.useRef(null),H=s.useRef(null),be=s.useRef(null),ve=s.useRef(null),L=s.useCallback(t=>t.split("").filter(G).join(""),[G]),$=s.useCallback(t=>{var c;return(c=d==null?void 0:d(t))!=null?c:t},[d]),R=s.useCallback(t=>{var c;return((c=p==null?void 0:p(t))!=null?c:t).toString()},[p]);Oe(()=>{(l.valueAsNumber>o||l.valueAsNumber{if(!_.current)return;if(_.current.value!=l.value){const c=$(_.current.value);l.setValue(L(c))}},[$,L]);const z=s.useCallback((t=i)=>{q&&me(t)},[me,q,i]),W=s.useCallback((t=i)=>{q&&fe(t)},[fe,q,i]),g=st(z,W);Ae(be,"disabled",g.stop,g.isSpinning),Ae(ve,"disabled",g.stop,g.isSpinning);const he=s.useCallback(t=>{if(t.nativeEvent.isComposing)return;const v=$(t.currentTarget.value);T(L(v)),H.current={start:t.currentTarget.selectionStart,end:t.currentTarget.selectionEnd}},[T,L,$]),ge=s.useCallback(t=>{var c,v,N;te==null||te(t),H.current&&(t.target.selectionStart=(v=H.current.start)!=null?v:(c=t.currentTarget.value)==null?void 0:c.length,t.currentTarget.selectionEnd=(N=H.current.end)!=null?N:t.currentTarget.selectionStart)},[te]),xe=s.useCallback(t=>{if(t.nativeEvent.isComposing)return;lt(t,G)||t.preventDefault();const c=Ne(t)*i,v=t.key,P={ArrowUp:()=>z(c),ArrowDown:()=>W(c),Home:()=>T(u),End:()=>T(o)}[v];P&&(t.preventDefault(),P(t))},[G,i,z,W,T,u,o]),Ne=t=>{let c=1;return(t.metaKey||t.ctrlKey)&&(c=.1),t.shiftKey&&(c=10),c},Ie=s.useMemo(()=>{const t=ne==null?void 0:ne(l.value);if(t!=null)return t;const c=l.value.toString();return c||void 0},[l.value,ne]),ye=s.useCallback(()=>{let t=l.value;if(l.value==="")return;/^[eE]/.test(l.value.toString())?l.setValue(""):(l.valueAsNumbero&&(t=o),l.cast(t))},[l,o,u]),Ce=s.useCallback(()=>{re(!1),r&&ye()},[r,re,ye]),X=s.useCallback(()=>{e&&requestAnimationFrame(()=>{var t;(t=_.current)==null||t.focus()})},[e]),Se=s.useCallback(t=>{t.preventDefault(),g.up(),X()},[X,g]),we=s.useCallback(t=>{t.preventDefault(),g.down(),X()},[X,g]);Ge(()=>_.current,"wheel",t=>{var c,v;const P=((v=(c=_.current)==null?void 0:c.ownerDocument)!=null?v:document).activeElement===_.current;if(!x||!P)return;t.preventDefault();const D=Ne(t)*i,_e=Math.sign(t.deltaY);_e===-1?z(D):_e===1&&W(D)},{passive:!1});const Te=s.useCallback((t={},c=null)=>{const v=b||a&&l.isAtMax;return{...t,ref:ae(c,be),role:"button",tabIndex:-1,onPointerDown:C(t.onPointerDown,N=>{N.button!==0||v||Se(N)}),onPointerLeave:C(t.onPointerLeave,g.stop),onPointerUp:C(t.onPointerUp,g.stop),disabled:v,"aria-disabled":se(v)}},[l.isAtMax,a,Se,g.stop,b]),De=s.useCallback((t={},c=null)=>{const v=b||a&&l.isAtMin;return{...t,ref:ae(c,ve),role:"button",tabIndex:-1,onPointerDown:C(t.onPointerDown,N=>{N.button!==0||v||we(N)}),onPointerLeave:C(t.onPointerLeave,g.stop),onPointerUp:C(t.onPointerUp,g.stop),disabled:v,"aria-disabled":se(v)}},[l.isAtMin,a,we,g.stop,b]),je=s.useCallback((t={},c=null)=>{var v,N,P,D;return{name:w,inputMode:S,type:"text",pattern:E,"aria-labelledby":U,"aria-label":K,"aria-describedby":B,id:O,disabled:b,...t,readOnly:(v=t.readOnly)!=null?v:m,"aria-readonly":(N=t.readOnly)!=null?N:m,"aria-required":(P=t.required)!=null?P:h,required:(D=t.required)!=null?D:h,ref:ae(_,c),value:R(l.value),role:"spinbutton","aria-valuemin":u,"aria-valuemax":o,"aria-valuenow":Number.isNaN(l.valueAsNumber)?void 0:l.valueAsNumber,"aria-invalid":se(I??l.isOutOfRange),"aria-valuetext":Ie,autoComplete:"off",autoCorrect:"off",onChange:C(t.onChange,he),onKeyDown:C(t.onKeyDown,xe),onFocus:C(t.onFocus,ge,()=>re(!0)),onBlur:C(t.onBlur,pe,Ce)}},[w,S,E,U,K,R,B,O,b,h,m,I,l.value,l.valueAsNumber,l.isOutOfRange,u,o,Ie,he,xe,ge,pe,Ce]);return{value:R(l.value),valueAsNumber:l.valueAsNumber,isFocused:Ve,isDisabled:b,isReadOnly:m,getIncrementButtonProps:Te,getDecrementButtonProps:De,getInputProps:je,htmlProps:ee}}var[ct,J]=Pe({name:"NumberInputStylesContext",errorMessage:`useNumberInputStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),[dt,ie]=Pe({name:"NumberInputContext",errorMessage:"useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within "}),pt=j(function(e,r){const a=Ke("NumberInput",e),u=Ue(e),o=qe(u),{htmlProps:i,...m}=it(o),b=s.useMemo(()=>m,[m]);return f.jsx(dt,{value:b,children:f.jsx(ct,{value:a,children:f.jsx(Y.div,{...i,ref:r,className:Me("chakra-numberinput",e.className),__css:{position:"relative",zIndex:0,...a.root}})})})});pt.displayName="NumberInput";var mt=j(function(e,r){const a=J();return f.jsx(Y.div,{"aria-hidden":!0,ref:r,...e,__css:{display:"flex",flexDirection:"column",position:"absolute",top:"0",insetEnd:"0px",margin:"1px",height:"calc(100% - 2px)",zIndex:1,...a.stepperGroup}})});mt.displayName="NumberInputStepper";var ft=j(function(e,r){const{getInputProps:a}=ie(),u=a(e,r),o=J();return f.jsx(Y.input,{...u,className:Me("chakra-numberinput__field",e.className),__css:{width:"100%",...o.field}})});ft.displayName="NumberInputField";var Re=Y("div",{baseStyle:{display:"flex",justifyContent:"center",alignItems:"center",flex:1,transitionProperty:"common",transitionDuration:"normal",userSelect:"none",cursor:"pointer",lineHeight:"normal"}}),bt=j(function(e,r){var a;const u=J(),{getDecrementButtonProps:o}=ie(),i=o(e,r);return f.jsx(Re,{...i,__css:u.stepper,children:(a=e.children)!=null?a:f.jsx(tt,{})})});bt.displayName="NumberDecrementStepper";var vt=j(function(e,r){var a;const{getIncrementButtonProps:u}=ie(),o=u(e,r),i=J();return f.jsx(Re,{...o,__css:i.stepper,children:(a=e.children)!=null?a:f.jsx(nt,{})})});vt.displayName="NumberIncrementStepper";var St=He("chevron-right","IconChevronRight",[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]]);const wt=(n,e)=>{const[r,a]=s.useState(n);return s.useEffect(()=>{const u=setTimeout(()=>{a(n)},e);return()=>{clearTimeout(u)}},[n,e]),r},ht={position:"absolute",marginLeft:"10px",width:"20px",height:"20px",top:"50%",color:"#A0AEC0",transform:"translateY(-50%)"};function _t(n){const{searchValue:e,onUpdateSearchValue:r,style:a}=n,u=e!=="";return f.jsxs(Le,{style:{position:"relative",...a},mb:2,children:[f.jsx(Je,{style:ht}),u&&f.jsx($e,{size:"xs",position:"absolute",right:"5px",top:"50%",transform:"translateY(-50%)",cursor:"pointer",background:"none",zIndex:"100",icon:f.jsx(ze,{width:15,height:15}),onClick:()=>r(""),"aria-label":"clear input button"}),f.jsx(We,{placeholder:n.placeholder??"Search",size:"sm",paddingLeft:"35px",paddingBlock:"5px",value:e,onChange:({target:o})=>r(o.value)})]})}function At({mediaLocalPath:n,size:e,isPreview:r,autoPlay:a,hideBrokenImage:u,objectFit:o,onBrokenLink:i}){const[m,b]=s.useState(!0);return s.useEffect(()=>{u&&(async()=>{try{if((await fetch(r?`/workspace/preview_media?filename=${n}`:`/workspace/view_media?filename=${n}`)).status==404){b(!1),i==null||i();return}}catch(I){console.error("Error checking media exists",I)}})()},[]),m?Xe(n)?f.jsx(Ye,{borderRadius:3,boxSize:`${e}px`,objectFit:o??"cover",src:`/workspace/view_media?filename=${n}`,alt:"workflow image renamed or moved from output folder"}):f.jsx("div",{style:{width:e+"px",height:e+"px",overflow:"hidden",position:"relative"},children:f.jsx("video",{width:e,height:e,src:`/workspace/view_media?filename=${n}`,loop:!0,autoPlay:a??!1,muted:!0,style:{objectFit:"cover",width:"100%",height:"100%"},children:f.jsx("track",{kind:"captions"})})}):null}export{St as I,At as M,pt as N,_t as S,ft as a,mt as b,Ze as c,vt as d,bt as e,yt as p,Ct as r,wt as u,It as v}; diff --git a/dist/workspace_web/ModelManagerTopbar-SNvLsit2.js b/dist/workspace_web/ModelManagerTopbar-SNvLsit2.js new file mode 100644 index 0000000..eda7eac --- /dev/null +++ b/dist/workspace_web/ModelManagerTopbar-SNvLsit2.js @@ -0,0 +1 @@ +import{f as H,r as m,j as n,g as z,e as re,$ as J,b as qe,o as Ye,k as Qe,h as A,a0 as ae,P as Je,a1 as Xe,N as Le,a2 as Ze,Q as Ie,S as Ee,T as et,Z as tt,M as st,O as nt,R as ot}from"./input.js";import{aj as it,m as rt,ak as at,al as lt,am as $,B as oe,F as R,h as N,i as ie,X as Ae,an as ct,k as V,a3 as G,a4 as Te,a5 as dt,ac as Ne,j as X,H as W,ao as De,ap as xe,g as q,w as ht,aq as Fe,f as Pe,ar as ye,as as ut,at as Oe,au as ft,av as mt,aw as pt,ax as gt,ay as xt,az as ee,aA as yt,aB as wt}from"./App-Pi18TWng.js";import{f as le,s as vt,g as jt}from"./civitUtils-8IbIESmj.js";import{I as ze}from"./chunk-7D6N5TE5-ZfhYDM9i.js";import{G as Mt,C as _t}from"./chunk-JARCRF6W-sDjzfEGl.js";import{api as ce}from"/scripts/api.js";import{S as Z}from"./chunk-3RSXBRAN-1feEpIXZ.js";var Be=H(function(e,s){const{spacing:o="0.5rem",spacingX:i,spacingY:r,children:a,justify:c,direction:l,align:d,className:h,shouldWrapChildren:f,...u}=e,g=m.useMemo(()=>f?m.Children.map(a,(p,x)=>n.jsx(de,{children:p},x)):a,[a,f]);return n.jsx(z.div,{ref:s,className:re("chakra-wrap",h),...u,children:n.jsx(z.ul,{className:"chakra-wrap__list",__css:{display:"flex",flexWrap:"wrap",justifyContent:c,alignItems:d,flexDirection:l,listStyleType:"none",gap:o,columnGap:i,rowGap:r,padding:"0"},children:g})})});Be.displayName="Wrap";var de=H(function(e,s){const{className:o,...i}=e;return n.jsx(z.li,{ref:s,__css:{display:"flex",alignItems:"flex-start"},className:re("chakra-wrap__listitem",o),...i})});de.displayName="WrapItem";function we(t){return rt(t,e=>e==="auto"?"auto":`span ${e}/span ${e}`)}var Re=H(function(e,s){const{area:o,colSpan:i,colStart:r,colEnd:a,rowEnd:c,rowSpan:l,rowStart:d,...h}=e,f=it({gridArea:o,gridColumn:we(i),gridRow:we(l),gridColumnStart:r,gridColumnEnd:a,gridRowStart:d,gridRowEnd:c});return n.jsx(z.div,{ref:s,__css:f,...h})});Re.displayName="GridItem";var te=(t,e)=>e?`${t}.${e}, ${e}`:void 0;function We(t){var e;const{bg:s,bgColor:o,backgroundColor:i,shadow:r,boxShadow:a,shadowColor:c}=t,{getArrowProps:l,getArrowInnerProps:d}=at(),h=lt(),f=(e=s??o)!=null?e:i,u=r??a;return n.jsx(z.div,{...l(),className:"chakra-popover__arrow-positioner",children:n.jsx(z.div,{className:re("chakra-popover__arrow",t.className),...d(t),__css:{"--popper-arrow-shadow-color":te("colors",c),"--popper-arrow-bg":te("colors",f),"--popper-arrow-shadow":te("shadows",u),...h.arrow}})})}We.displayName="PopoverArrow";function St(t,e,s){return(t-e)*100/(s-e)}J({"0%":{strokeDasharray:"1, 400",strokeDashoffset:"0"},"50%":{strokeDasharray:"400, 400",strokeDashoffset:"-100"},"100%":{strokeDasharray:"400, 400",strokeDashoffset:"-260"}});J({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}});var Ct=J({"0%":{left:"-40%"},"100%":{left:"100%"}}),bt=J({from:{backgroundPosition:"1rem 0"},to:{backgroundPosition:"0 0"}});function kt(t){const{value:e=0,min:s,max:o,valueText:i,getValueText:r,isIndeterminate:a,role:c="progressbar"}=t,l=St(e,s,o);return{bind:{"data-indeterminate":a?"":void 0,"aria-valuemax":o,"aria-valuemin":s,"aria-valuenow":a?void 0:e,"aria-valuetext":(()=>{if(e!=null)return typeof r=="function"?r(e,l):i})(),role:c},percent:l,value:e}}var[Lt,It]=qe({name:"ProgressStylesContext",errorMessage:`useProgressStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Et=H((t,e)=>{const{min:s,max:o,value:i,isIndeterminate:r,role:a,...c}=t,l=kt({value:i,min:s,max:o,isIndeterminate:r,role:a}),h={height:"100%",...It().filledTrack};return n.jsx(z.div,{ref:e,style:{width:`${l.percent}%`,...c.style},...l.bind,...c,__css:h})}),$e=H((t,e)=>{var s;const{value:o,min:i=0,max:r=100,hasStripe:a,isAnimated:c,children:l,borderRadius:d,isIndeterminate:h,"aria-label":f,"aria-labelledby":u,"aria-valuetext":g,title:p,role:x,...j}=Ye(t),M=Qe("Progress",t),b=d??((s=M.track)==null?void 0:s.borderRadius),k={animation:`${bt} 1s linear infinite`},D={...!h&&a&&c&&k,...h&&{position:"absolute",willChange:"left",minWidth:"50%",animation:`${Ct} 1s ease infinite normal none running`}},C={overflow:"hidden",position:"relative",...M.track};return n.jsx(z.div,{ref:e,borderRadius:b,__css:C,...j,children:n.jsxs(Lt,{value:M,children:[n.jsx(Et,{"aria-label":f,"aria-labelledby":u,"aria-valuetext":g,min:i,max:r,value:o,isIndeterminate:h,css:D,borderRadius:b,title:p,role:x}),l]})})});$e.displayName="Progress";function K(t){return Array.isArray?Array.isArray(t):Ue(t)==="[object Array]"}const At=1/0;function Tt(t){return t==null?"":function(e){if(typeof e=="string")return e;let s=e+"";return s=="0"&&1/e==-At?"-0":s}(t)}function F(t){return typeof t=="string"}function Ke(t){return typeof t=="number"}function Nt(t){return t===!0||t===!1||function(e){return function(s){return typeof s=="object"}(e)&&e!==null}(t)&&Ue(t)=="[object Boolean]"}function T(t){return t!=null}function se(t){return!t.trim().length}function Ue(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const Dt=t=>`Missing ${t} property in key`,Ft=t=>`Property 'weight' in key '${t}' must be a positive integer`,ve=Object.prototype.hasOwnProperty;class Pt{constructor(e){this._keys=[],this._keyMap={};let s=0;e.forEach(o=>{let i=Ge(o);this._keys.push(i),this._keyMap[i.id]=i,s+=i.weight}),this._keys.forEach(o=>{o.weight/=s})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Ge(t){let e=null,s=null,o=null,i=1,r=null;if(F(t)||K(t))o=t,e=je(t),s=Me(t);else{if(!ve.call(t,"name"))throw new Error(Dt("name"));const a=t.name;if(o=a,ve.call(t,"weight")&&(i=t.weight,i<=0))throw new Error(Ft(a));e=je(a),s=Me(a),r=t.getFn}return{path:e,id:s,weight:i,src:o,getFn:r}}function je(t){return K(t)?t:t.split(".")}function Me(t){return K(t)?t.join("."):t}var v={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx{if(T(r))if(a[c]){const l=r[a[c]];if(!T(l))return;if(c===a.length-1&&(F(l)||Ke(l)||Nt(l)))s.push(Tt(l));else if(K(l)){o=!0;for(let d=0,h=l.length;d{this._keysMap[s.id]=o})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,F(this.docs[0])?this.docs.forEach((e,s)=>{this._addString(e,s)}):this.docs.forEach((e,s)=>{this._addObject(e,s)}),this.norm.clear())}add(e){const s=this.size();F(e)?this._addString(e,s):this._addObject(e,s)}removeAt(e){this.records.splice(e,1);for(let s=e,o=this.size();s{let a=i.getFn?i.getFn(e):this.getFn(e,i.path);if(T(a)){if(K(a)){let c=[];const l=[{nestedArrIndex:-1,value:a}];for(;l.length;){const{nestedArrIndex:d,value:h}=l.pop();if(T(h))if(F(h)&&!se(h)){let f={v:h,i:d,n:this.norm.get(h)};c.push(f)}else K(h)&&h.forEach((f,u)=>{l.push({nestedArrIndex:u,value:f})})}o.$[r]=c}else if(F(a)&&!se(a)){let c={v:a,n:this.norm.get(a)};o.$[r]=c}}}),this.records.push(o)}toJSON(){return{keys:this.keys,records:this.records}}}function Ve(t,e,{getFn:s=v.getFn,fieldNormWeight:o=v.fieldNormWeight}={}){const i=new he({getFn:s,fieldNormWeight:o});return i.setKeys(t.map(Ge)),i.setSources(e),i.create(),i}function Q(t,{errors:e=0,currentLocation:s=0,expectedLocation:o=0,distance:i=v.distance,ignoreLocation:r=v.ignoreLocation}={}){const a=e/t.length;if(r)return a;const c=Math.abs(o-s);return i?a+c/i:c?1:a}const B=32;function zt(t,e,s,{location:o=v.location,distance:i=v.distance,threshold:r=v.threshold,findAllMatches:a=v.findAllMatches,minMatchCharLength:c=v.minMatchCharLength,includeMatches:l=v.includeMatches,ignoreLocation:d=v.ignoreLocation}={}){if(e.length>B)throw new Error(`Pattern length exceeds max of ${B}.`);const h=e.length,f=t.length,u=Math.max(0,Math.min(o,f));let g=r,p=u;const x=c>1||l,j=x?Array(f):[];let M;for(;(M=t.indexOf(e,p))>-1;){let C=Q(e,{currentLocation:M,expectedLocation:u,distance:i,ignoreLocation:d});if(g=Math.min(C,g),p=M+h,x){let L=0;for(;L=O;w-=1){let _=w-1,S=s[t.charAt(_)];if(x&&(j[_]=+!!S),y[w]=(y[w+1]<<1|1)&S,C&&(y[w]|=(b[w+1]|b[w])<<1|1|b[w+1]),y[w]&Y&&(k=Q(e,{errors:C,currentLocation:_,expectedLocation:u,distance:i,ignoreLocation:d}),k<=g)){if(g=k,p=_,p<=u)break;O=Math.max(1,2*u-p)}}if(Q(e,{errors:C+1,currentLocation:u,expectedLocation:u,distance:i,ignoreLocation:d})>g)break;b=y}const D={isMatch:p>=0,score:Math.max(.001,k)};if(x){const C=function(L=[],I=v.minMatchCharLength){let O=[],E=-1,y=-1,w=0;for(let _=L.length;w<_;w+=1){let S=L[w];S&&E===-1?E=w:S||E===-1||(y=w-1,y-E+1>=I&&O.push([E,y]),E=-1)}return L[w-1]&&w-E>=I&&O.push([E,w-1]),O}(j,c);C.length?l&&(D.indices=C):D.isMatch=!1}return D}function Bt(t){let e={};for(let s=0,o=t.length;s{this.chunks.push({pattern:u,alphabet:Bt(u),startIndex:g})},f=this.pattern.length;if(f>B){let u=0;const g=f%B,p=f-g;for(;u{const{isMatch:M,score:b,indices:k}=zt(e,p,x,{location:i+j,distance:r,threshold:a,findAllMatches:c,minMatchCharLength:l,includeMatches:o,ignoreLocation:d});M&&(u=!0),f+=b,M&&k&&(h=[...h,...k])});let g={isMatch:u,score:u?f/this.chunks.length:1};return u&&o&&(g.indices=h),g}}const _e=[];function Se(t,e){for(let s=0,o=_e.length;s{if(!T(o.indices)||!o.indices.length)return;const{indices:i,value:r}=o;let a={indices:i,value:r};o.key&&(a.key=o.key.src),o.idx>-1&&(a.refIndex=o.idx),e.matches.push(a)})}function $t(t,e){e.score=t.score}class U{constructor(e,s={},o){if(this.options={...v,...s},this.options.useExtendedSearch)throw new Error("Extended search is not available");this._keyStore=new Pt(this.options.keys),this.setCollection(e,o)}setCollection(e,s){if(this._docs=e,s&&!(s instanceof he))throw new Error("Incorrect 'index' type");this._myIndex=s||Ve(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){T(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const s=[];for(let o=0,i=this._docs.length;o{let u=1;f.matches.forEach(({key:g,norm:p,score:x})=>{const j=g?g.weight:null;u*=Math.pow(x===0&&j?Number.EPSILON:x,(j||1)*(h?1:p))}),f.score=u})}(l,{ignoreFieldNorm:c}),r&&l.sort(a),Ke(s)&&s>-1&&(l=l.slice(0,s)),function(d,h,{includeMatches:f=v.includeMatches,includeScore:u=v.includeScore}={}){const g=[];return f&&g.push(Wt),u&&g.push($t),d.map(p=>{const{idx:x}=p,j={item:h[x],refIndex:x};return g.length&&g.forEach(M=>{M(p,j)}),j})}(l,this._docs,{includeMatches:o,includeScore:i})}_searchStringList(e){const s=Se(e,this.options),{records:o}=this._myIndex,i=[];return o.forEach(({v:r,i:a,n:c})=>{if(!T(r))return;const{isMatch:l,score:d,indices:h}=s.searchIn(r);l&&i.push({item:r,idx:a,matches:[{score:d,value:r,norm:c,indices:h}]})}),i}_searchLogical(e){throw new Error("Logical search is not available")}_searchObjectList(e){const s=Se(e,this.options),{keys:o,records:i}=this._myIndex,r=[];return i.forEach(({$:a,i:c})=>{if(!T(a))return;let l=[];o.forEach((d,h)=>{l.push(...this._findMatches({key:d,value:a[h],searcher:s}))}),l.length&&r.push({idx:c,item:a,matches:l})}),r}_findMatches({key:e,value:s,searcher:o}){if(!T(s))return[];let i=[];if(K(s))s.forEach(({v:r,i:a,n:c})=>{if(!T(r))return;const{isMatch:l,score:d,indices:h}=o.searchIn(r);l&&i.push({score:d,key:e,value:r,idx:a,norm:c,indices:h})});else{const{v:r,n:a}=s,{isMatch:c,score:l,indices:d}=o.searchIn(r);c&&i.push({score:l,key:e,value:r,norm:a,indices:d})}return i}}U.version="7.0.0",U.createIndex=Ve,U.parseIndex=function(t,{getFn:e=v.getFn,fieldNormWeight:s=v.fieldNormWeight}={}){const{keys:o,records:i}=t,r=new he({getFn:e,fieldNormWeight:s});return r.setKeys(o),r.setIndexRecords(i),r},U.config=v;function Kt({selectedModel:t,setSelectedModel:e,modelTypeList:s}){const o=i=>{e(i)};return n.jsx(Be,{children:s.map(i=>n.jsx(de,{children:n.jsx(A,{colorScheme:"blue",variant:t===i?"solid":"outline",onClick:()=>o(i),size:"sm",children:i})},i))})}const Ut={checkpoints:"CheckpointLoaderSimple",vae:"VAELoader",loras:"LoraLoader",controlnet:"ControlNetLoader",upscale_models:"UpscaleModelLoader"};function Gt({data:t}){const[e,s]=m.useState("https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/27fd7433-cb0a-4a87-88c1-21ccb2b1a842/width=450/00060-881622046.jpeg"),[o,i]=m.useState(!t.file_hash),[r,a]=m.useState();m.useEffect(()=>{i(!t.file_hash),c()},[t.file_hash]);const c=async()=>{var h;const d=await $.models.get(t.model_name+"@"+t.model_type);if(d!=null&&(a(d),(h=d.imageUrl)!=null&&h.length&&s(d.imageUrl)),!(d!=null&&d.imageUrl)&&t.file_hash!=null)try{const f=await le(t.file_hash),u=f.imageUrl;u&&s(u);const g={id:t.model_name+"@"+t.model_type,fileHash:t.file_hash,fileFolder:t.model_type,fileName:t.model_name+t.model_extension,modelName:f.modelName??null,civitModelID:f.civitModelID,civitModelVersionID:f.civitModelVersionID,imageUrl:u??null};a(g)}catch{}t.preview&&s(t.preview)},l=d=>{const h=Ut[t.model_type];h&&(d.dataTransfer.setData("eventName","WorkspaceManagerAddNode"),d.dataTransfer.setData("modelRelativePath",t.model_name+t.model_extension),d.dataTransfer.setData("nodeType",h))};return n.jsxs(oe,{children:[n.jsxs(oe,{position:"relative",borderRadius:4,draggable:!0,onDragStart:l,children:[o?n.jsx(R,{bg:"rgba(0, 0, 0, 0.5)",height:178,justifyContent:"center",alignItems:"center",children:n.jsx(ae,{})}):n.jsx(ze,{src:e,draggable:!1,boxSize:"100%",height:150,objectFit:"cover",borderRadius:4,cursor:(r==null?void 0:r.civitModelID)!=null?"pointer":"auto",onClick:()=>{(r==null?void 0:r.civitModelID)==null||(r==null?void 0:r.civitModelVersionID)==null||window.open(`https://civitai.com/models/${r==null?void 0:r.civitModelID}?modelVersionId=${r==null?void 0:r.civitModelVersionID}`)}}),n.jsx(N,{position:"absolute",bottom:"0",left:"0",right:"0",color:"white",fontSize:14})]}),n.jsx(ie,{label:n.jsxs("span",{children:[t.model_name+t.model_extension,n.jsx("br",{}),t.date.toLocaleDateString()]}),children:n.jsx(N,{textAlign:"center",p:"1",fontSize:14,noOfLines:2,children:t.model_name+t.model_extension})})]})}function Vt({list:t}){return n.jsx(Mt,{templateColumns:"repeat(3, minmax(0, 1fr))",gap:1,marginTop:2,children:t.map(e=>n.jsx(Re,{children:n.jsx(Gt,{data:e})},e.model_name+e.date.getTime()))})}function Ht(){const{setRoute:t}=m.useContext(Ae);return n.jsx(n.Fragment,{children:n.jsx(A,{size:"sm",colorScheme:"teal",onClick:()=>t("installModels"),children:"Install Models"})})}const qt=()=>{const[t,e]=m.useState(["checkpoints"]),[s,o]=m.useState([]),[i,r]=m.useState(!0);m.useEffect(()=>{a(),ce.addEventListener("model_list",async l=>{c(l.detail)})},[]);const a=async()=>{const l=await ct();c(l)},c=async l=>{if(!l)return;r(!1);const d=Array.from(new Set(l.map(f=>f.model_type))),h=d.indexOf("checkpoints");h>=0&&d.splice(h,1),d.unshift("checkpoints"),e(d),o(l.map(f=>({...f,date:new Date(f.date*1e3)})))};return{modelTypeList:t,modelsList:s,loading:i}};function Yt(){const[t,e]=m.useState(!1),s=()=>{var a;(a=V)==null||a.getSetting("showNsfwModelThumbnail").then(c=>{e(c??!1)})};m.useEffect(()=>{s()},[]);const o=a=>{var l;const c=a.target.checked;(l=V)==null||l.upsert({showNsfwModelThumbnail:c}).then(()=>{s(),i(),window.dispatchEvent(new Event("showNsfwModelThumbnail"))})},i=async()=>{const a=await $.models.toArray();for(let c=0;c{try{if(a.fileHash==null)return;const l=(await le(a.fileHash)).imageUrl;$.models.update(a.id,{imageUrl:l??null})}catch{}};return n.jsx(_t,{isChecked:t,onChange:o,children:"Show NSFW"})}function Qt(){const t=async e=>{if(e.dataTransfer.getData("eventName")!=="WorkspaceManagerAddNode")return;const o=e.dataTransfer.getData("modelRelativePath"),i=e.dataTransfer.getData("nodeType"),r=LiteGraph.createNode(i);r.pos=[e.canvasX,e.canvasY],r.configure({widgets_values:[o]}),G.graph.add(r)};return m.useEffect(()=>(G.canvasEl.addEventListener("drop",t),()=>{G.canvasEl.removeEventListener("drop",t)}),[]),null}function Jt({onClose:t}){const[e,s]=m.useState("checkpoints"),[o,i]=m.useState(""),[r,a]=m.useState("name"),{loading:c,modelTypeList:l,modelsList:d}=qt(),[h,f]=m.useState([]),[u,g]=m.useState([]);m.useEffect(()=>{x();async function x(){const j=await $.models.toArray();f(d.map(M=>({...M,db:j.find(b=>b.id===M.model_name+"@"+M.model_type)})))}},[d]),m.useEffect(()=>{let x=[];o.length?x=new U(h,{keys:["model_name","db.modelName"]}).search(o).map(b=>b.item):x=d.filter(j=>j.model_type===e).sort((j,M)=>r==="name"?j.model_name.localeCompare(M.model_name):M.date.getTime()-j.date.getTime()),g(x)},[e,d,o,r,h]),m.useEffect(()=>(G.canvasEl.addEventListener("click",t),()=>{G.canvasEl.removeEventListener("click",t)}),[t]);const p=440;return n.jsx(Je,{children:n.jsxs(oe,{style:{width:p},children:[n.jsxs(Te,{width:p,height:"100vh",p:4,gap:2,position:"fixed",top:0,left:0,shadow:"xl",zIndex:dt,overflowY:"auto",children:[n.jsxs(R,{justifyContent:"space-between",alignContent:"center",py:3,children:[n.jsx(Ne,{size:"md",mr:2,children:"Models"}),n.jsx(Ht,{})]}),n.jsx(R,{gap:4,justifyContent:"center",alignItems:"center",mb:1,children:n.jsx(X,{size:"sm",placeholder:"Search",value:o,onChange:x=>i(x.target.value)})}),n.jsxs(R,{gap:4,justifyContent:"space-between",alignItems:"center",mb:1,children:[!o.length&&n.jsxs(W,{children:[n.jsx("span",{children:"Sort By"}),n.jsxs(Z,{value:r,size:"sm",width:"120px",onChange:x=>a(x.target.value),children:[n.jsx("option",{value:"name",children:"Name"}),n.jsx("option",{value:"date",children:"Date"})]})]}),n.jsx(Yt,{})]}),!o.length&&n.jsx(Kt,{modelTypeList:l,setSelectedModel:s,selectedModel:e}),n.jsx(Vt,{list:u}),c&&n.jsx(R,{justifyContent:"center",alignItems:"center",height:"100%",children:n.jsx(ae,{})})]}),n.jsx(Qt,{})]})})}const Xt=async t=>{try{const s=await(await ce.fetchApi("/model_manager/install_model",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).text();window.dispatchEvent(new CustomEvent("model_install_message",{detail:s}))}catch(e){console.error("Failed to connect to the server:",e)}};function Ce(t,e=1){const i=t/1024;return i>=1024?(i/1024).toFixed(e)+" GB":i.toFixed(e)+" MB"}function be(t,e){if(!t||t.length===0)return;let s=t.find(o=>o.nsfw==="None"||o.nsfwLevel===1);return e&&(s=s??t[0]),s}function Zt(t,e=280,s){var o,i,r,a;if(t){if(t.images)return`https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/${(o=be(t.images,s))==null?void 0:o.url}/width=${e}/`;if(De(t))return(a=be((r=(i=t.modelVersions)==null?void 0:i.at(0))==null?void 0:r.images,s))==null?void 0:a.url}}const ne=280;function es({model:t,onClickInstallModel:e,installing:s}){var u,g;const[o,i]=m.useState();m.useEffect(()=>{p();async function p(){var j;const x=await((j=V)==null?void 0:j.getSetting("showNsfwModelThumbnail"));i(Zt(t,ne,x))}},[t]);const r=De(t)?t.modelVersions:t.versions,[a,c]=m.useState(((u=r==null?void 0:r[0])==null?void 0:u.name)??""),l=r==null?void 0:r.find(p=>(p==null?void 0:p.name)===a),d=()=>{window.open(`https://civitai.com/models/${t.id}`)},h=m.useCallback(()=>{if(l==null){console.error("no file is find by name",a);return}e(xe(l,t.name),t)},[a]),f=(g=xe(l))==null?void 0:g.sizeKB;return n.jsxs(Te,{width:ne,justifyContent:"space-between",mb:2,gap:1,children:[n.jsx(ze,{borderRadius:3,boxSize:ne+"px",objectFit:"cover",src:o,alt:"model cover image",cursor:"pointer",onClick:()=>d()}),n.jsxs(q,{p:1,children:[n.jsx(ie,{label:t.name,children:n.jsx(N,{fontWeight:500,noOfLines:1,children:t.name})}),n.jsxs(R,{justifyContent:"space-between",alignItems:"center",children:[n.jsx(A,{borderRadius:14,noOfLines:1,size:"xs",colorScheme:"teal",maxWidth:"40%",flexShrink:1,variant:"outline",px:1,cursor:"text",children:n.jsx(N,{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:t.type})}),n.jsx(A,{leftIcon:n.jsx(ht,{size:18}),iconSpacing:1,borderRadius:10,size:"sm",py:1,colorScheme:"teal",type:"submit",onClick:()=>h(),isDisabled:!!(a&&s.includes(a)),children:"Install"})]}),n.jsxs(W,{children:[n.jsx(Z,{size:"md",style:{paddingLeft:4},onChange:p=>{c(p.target.value)},children:r==null?void 0:r.map(p=>{const x=p==null?void 0:p.name;return x?n.jsx("option",{value:x,style:{padding:0},children:x},p.id):null})}),f&&n.jsx(ie,{label:Ce(f),children:n.jsx(N,{flexShrink:1,noOfLines:1,width:"40%",children:Ce(f)})})]})]})]})}function ts({searchQuery:t,setSearchQuery:e,onSearch:s}){return n.jsxs(R,{gap:1,alignItems:"center",grow:1,children:[n.jsx(X,{placeholder:"Search models in CivitAI",width:"60%",value:t,onChange:o=>e(o.target.value),onKeyUp:o=>{o.code==="Enter"&&s()}}),n.jsx(A,{size:"sm",onClick:()=>s(),colorScheme:"teal",children:"Search"})]})}function ss({isOpen:t,fileSelected:e,onClose:s,selectFolder:o}){const[i,r]=m.useState(""),[a,c]=m.useState([]),[l,d]=m.useState(""),h=m.useRef(null);m.useEffect(()=>{f()},[]);const f=async()=>{const u=await Fe();u&&(["custom_nodes","config","saved_prompts"].forEach(g=>{delete u[g]}),c(Object.values(u).flatMap(g=>g)))};return n.jsx(Xe,{isOpen:t,leastDestructiveRef:h,onClose:s,children:n.jsx(Le,{children:n.jsxs(Ze,{children:[n.jsx(Ie,{fontSize:"lg",fontWeight:"bold",children:"Choose Folder"}),n.jsx(Ee,{children:n.jsxs(q,{spacing:4,children:[!e&&n.jsxs(n.Fragment,{children:[n.jsx(N,{children:"Model download url"}),n.jsx(X,{placeholder:"https://civitai.com/api/download/models/311399",onChange:u=>d(u.target.value),value:l})]}),n.jsx(N,{children:"Choose model install folder"}),n.jsx(Z,{placeholder:"Select option",value:i,onChange:u=>r(u.target.value),children:a.map(u=>n.jsx("option",{value:u,children:u},u))})]})}),n.jsxs(et,{children:[n.jsx(A,{ref:h,onClick:s,children:"Cancel"}),n.jsx(A,{onClick:()=>o(i,l),ml:3,isDisabled:l.length===0,children:"Confirm"})]})]})})})}function ns(){const{colorMode:t}=tt(),e=Pe(),[s,o]=m.useState([]);return m.useEffect(()=>{ye.addEventListener("download_progress",i=>{o(i.detail)}),ye.addEventListener("download_error",i=>{e({title:"Download Error",description:i.detail,status:"error",duration:4e3,isClosable:!0})})},[]),n.jsx(q,{spacing:5,pos:"absolute",bottom:"0",left:"0",width:"50%",zIndex:80,backgroundColor:t==="light"?"white":"#242424",paddingX:5,pt:2,children:s.map(({save_path:i,progress:r})=>n.jsxs(W,{children:[n.jsx(N,{fontSize:16,width:"40%",children:i.replace(/^.*[\\/]/,"")}),n.jsx($e,{isIndeterminate:!r,hasStripe:!0,width:"50%",value:r}),n.jsxs(N,{fontSize:16,width:"10%",children:[r.toFixed(1),"%"]}),n.jsx(A,{variant:"outline",size:"sm",colorScheme:"red",onClick:()=>ut(i),children:"Cancel"})]},i))})}function os(){const[t,e]=m.useState(""),{onOpen:s,onClose:o,isOpen:i}=Oe(),r=()=>{vt(t),o()};return n.jsxs(ft,{isOpen:i,onOpen:s,onClose:o,placement:"right",closeOnBlur:!1,children:[n.jsx(mt,{children:n.jsx(A,{size:"sm",py:1,mr:8,children:"Set Civitai API Key"})}),n.jsxs(pt,{p:5,children:[n.jsx(We,{}),n.jsx(gt,{}),n.jsxs(q,{spacing:4,children:[n.jsx(N,{fontSize:14,children:"Some Civitai.com models require user login to download, you will nedd a Civitai API key to download in that case"}),n.jsx(X,{value:t,onChange:a=>e(a.target.value),placeholder:"API Key"}),n.jsx(A,{size:"sm",py:1,mr:8,onClick:r,children:"Save"})]})]})]})}var ke={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};async function is(t,e){var a,c;const s={queries:[{q:t,indexUid:"models_v9",facets:["category.name","checkpointType","fileFormats","lastVersionAtUnix","tags.name","type","user.username","version.baseModel"],attributesToHighlight:["*"],highlightPreTag:"__ais-highlight__",highlightPostTag:"__/ais-highlight__",limit:80,offset:0}]};return e&&(s.queries[0].filter=[[`"type"="${e}"`]]),((c=(a=await(await fetch(ke.VITE_CMODEL_SEARCH_URL,{headers:{"Content-Type":"application/json",Authorization:ke.VITE_CMODEL_APP_KEY},method:"POST",body:JSON.stringify(s)})).json())==null?void 0:a.results)==null?void 0:c.at(0)).hits??[]}function rs({onclose:t,searchQuery:e="",modelType:s}){const[o,i]=m.useState([]),[r,a]=m.useState(!1),[c,l]=m.useState(s),d=Pe(),[h,f]=m.useState([]),[u,g]=m.useState(e),{isOpen:p,onOpen:x,onClose:j}=Oe(),[M,b,k]=xt(),[P,Y]=m.useState({}),[D,C]=m.useState(ee),L=m.useCallback(async()=>{var S;a(!0);const y=await is(u,c);i(y);const w=await Fe();w&&Y(w);const _=await((S=V)==null?void 0:S.getSetting("defaultFolders"));_&&C(_),a(!1)},[u,c]),I=(y,w)=>{var fe,me,pe,ge;if(!((fe=k.current)!=null&&fe.id)&&!w){console.error("no url to download");return}let _=w??`https://civitai.com/api/download/models/${(me=k.current)==null?void 0:me.id}`,S=(pe=k.current)==null?void 0:pe.name;if(!S&&(S=_.split("/").pop(),!S)){console.error("downloadUrl is malformed");return}d({title:"Installing...",description:S,status:"info",duration:4e3,isClosable:!0}),S!=null&&f(He=>[...He,S??""]);const ue=jt();ue&&(_+=`?token=${ue}`),Xt({file_hash:(ge=k.current)==null?void 0:ge.SHA256,filename:S,save_path:y,url:_}),b(void 0),j()},O=async(y,w)=>{const _=D[w.type];b(y),_==null?x():I(_)},E=async(y,w)=>{var S;const _={...D,[y]:w};await((S=V)==null?void 0:S.upsert({defaultFolders:_})),C(_)};return m.useEffect(()=>{L()},[c]),n.jsxs(n.Fragment,{children:[n.jsxs(st,{isOpen:!0,onClose:t,blockScrollOnMount:!0,children:[n.jsx(Le,{}),n.jsxs(nt,{width:"90%",maxWidth:"90vw",height:"90vh",children:[n.jsxs(Ie,{pb:1,children:[n.jsxs(W,{gap:2,mb:2,alignItems:"center",children:[n.jsx(Ne,{size:"md",mr:2,children:"Models"}),n.jsx(ts,{searchQuery:u,setSearchQuery:g,onSearch:L}),n.jsx(A,{size:"sm",py:1,mr:8,onClick:x,children:"Custom URL Install"}),n.jsx(os,{})]}),n.jsxs(W,{gap:2,wrap:"wrap",children:[n.jsx(A,{size:"sm",py:1,onClick:()=>{l(void 0)},isActive:c==null,children:"All"}),yt.map(y=>n.jsx(A,{size:"sm",py:1,isActive:c===y,onClick:()=>{l(y)},children:y},y)),c&&P[ee[c]]&&n.jsxs(W,{ml:"auto",children:[n.jsx(N,{fontSize:17,whiteSpace:"nowrap",children:"Default Download Folder:"}),n.jsx(Z,{value:D[c],onChange:y=>E(c,y.target.value),children:P[ee[c]].map(y=>n.jsx("option",{value:y,children:y},y))})]})]}),r&&n.jsx(ae,{thickness:"4px",emptyColor:"gray.200",color:"pink.500",size:"lg"})]}),n.jsx(ot,{}),n.jsxs(Ee,{overflowY:"auto",children:[n.jsx(W,{wrap:"wrap",children:o==null?void 0:o.map(y=>n.jsx(es,{model:y,onClickInstallModel:O,installing:h},y.id))}),n.jsx(ns,{})]})]})]}),n.jsx(ss,{fileSelected:!!M,isOpen:p,onClose:j,selectFolder:(y,w)=>{I(y,k.current?void 0:w)}})]})}function ms(){const{setRoute:t,route:e}=m.useContext(Ae);return m.useEffect(()=>{ce.addEventListener("model_list",async s=>{var r;const o=(r=s.detail)==null?void 0:r.map(async a=>{const c=await $.models.get(a.model_name+"@"+a.model_type);if(c!=null&&c.fileHash)return c;let l={id:a.model_name+"@"+a.model_type,modelName:null,fileHash:a.file_hash??null,fileFolder:a.model_type,fileName:a.model_name+a.model_extension};if(!a.file_hash)return l;const d=await le(a.file_hash);return l={...l,modelName:d.modelName??null,civitModelID:d.civitModelID,civitModelVersionID:d.civitModelVersionID,imageUrl:d.imageUrl??null},l}),i=(await Promise.all(o)).filter(a=>a!=null);await $.models.clear(),await $.models.bulkPut(i.filter(a=>a!=null)),window.dispatchEvent(new CustomEvent("model_list_updated"))})},[]),n.jsxs(q,{style:{position:"relative"},children:[n.jsx(A,{size:"sm",backgroundColor:"#434554",color:"white",colorScheme:"blue","aria-label":"My models",onClick:()=>t("modelList"),px:1,height:wt+"px",children:"Models"}),e==="modelList"&&n.jsx(Jt,{onClose:()=>t("root")}),e==="installModels"&&n.jsx(rs,{modelType:"Checkpoint",onclose:()=>t("root")})]})}export{ms as default}; diff --git a/dist/workspace_web/ModelManagerTopbar-vr3vytmQ.js b/dist/workspace_web/ModelManagerTopbar-vr3vytmQ.js deleted file mode 100644 index 21fcf02..0000000 --- a/dist/workspace_web/ModelManagerTopbar-vr3vytmQ.js +++ /dev/null @@ -1,7 +0,0 @@ -import{f as V,r as p,j as n,g as z,h as re,a0 as J,b as Ve,o as qe,l as Qe,i as A,U as ae,P as Ye,a1 as Je,N as ke,a2 as Xe,Q as Ie,S as Le,T as Ze,$ as et,M as tt,O as st,R as nt,_ as ot}from"./input.js";import{an as it,m as rt,ao as at,ap as lt,aq as $,ar as le,B as oe,F as R,ae as Ee,h as N,i as ie,Z as Ae,as as ct,k as H,a5 as U,a6 as Te,a7 as dt,ag as Ne,j as X,H as W,at as De,au as xe,g as q,w as ht,av as Fe,f as Pe,aw as ye,ax as ut,ay as Oe,az as ft,aA as pt,aB as mt,aC as gt,aD as xt,aE as yt,aF as ee,aG as wt,aH as vt,aI as jt}from"./App-eQybp91e.js";import{G as Mt,C as _t}from"./chunk-JARCRF6W-OjDz07lE.js";import{api as ce}from"/scripts/api.js";import{S as Z}from"./chunk-3RSXBRAN-LXNJ9qB5.js";var ze=V(function(e,s){const{spacing:o="0.5rem",spacingX:i,spacingY:r,children:a,justify:c,direction:l,align:d,className:h,shouldWrapChildren:f,...u}=e,g=p.useMemo(()=>f?p.Children.map(a,(m,x)=>n.jsx(de,{children:m},x)):a,[a,f]);return n.jsx(z.div,{ref:s,className:re("chakra-wrap",h),...u,children:n.jsx(z.ul,{className:"chakra-wrap__list",__css:{display:"flex",flexWrap:"wrap",justifyContent:c,alignItems:d,flexDirection:l,listStyleType:"none",gap:o,columnGap:i,rowGap:r,padding:"0"},children:g})})});ze.displayName="Wrap";var de=V(function(e,s){const{className:o,...i}=e;return n.jsx(z.li,{ref:s,__css:{display:"flex",alignItems:"flex-start"},className:re("chakra-wrap__listitem",o),...i})});de.displayName="WrapItem";function we(t){return rt(t,e=>e==="auto"?"auto":`span ${e}/span ${e}`)}var Be=V(function(e,s){const{area:o,colSpan:i,colStart:r,colEnd:a,rowEnd:c,rowSpan:l,rowStart:d,...h}=e,f=it({gridArea:o,gridColumn:we(i),gridRow:we(l),gridColumnStart:r,gridColumnEnd:a,gridRowStart:d,gridRowEnd:c});return n.jsx(z.div,{ref:s,__css:f,...h})});Be.displayName="GridItem";var te=(t,e)=>e?`${t}.${e}, ${e}`:void 0;function Re(t){var e;const{bg:s,bgColor:o,backgroundColor:i,shadow:r,boxShadow:a,shadowColor:c}=t,{getArrowProps:l,getArrowInnerProps:d}=at(),h=lt(),f=(e=s??o)!=null?e:i,u=r??a;return n.jsx(z.div,{...l(),className:"chakra-popover__arrow-positioner",children:n.jsx(z.div,{className:re("chakra-popover__arrow",t.className),...d(t),__css:{"--popper-arrow-shadow-color":te("colors",c),"--popper-arrow-bg":te("colors",f),"--popper-arrow-shadow":te("shadows",u),...h.arrow}})})}Re.displayName="PopoverArrow";function St(t,e,s){return(t-e)*100/(s-e)}J({"0%":{strokeDasharray:"1, 400",strokeDashoffset:"0"},"50%":{strokeDasharray:"400, 400",strokeDashoffset:"-100"},"100%":{strokeDasharray:"400, 400",strokeDashoffset:"-260"}});J({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}});var bt=J({"0%":{left:"-40%"},"100%":{left:"100%"}}),Ct=J({from:{backgroundPosition:"1rem 0"},to:{backgroundPosition:"0 0"}});function kt(t){const{value:e=0,min:s,max:o,valueText:i,getValueText:r,isIndeterminate:a,role:c="progressbar"}=t,l=St(e,s,o);return{bind:{"data-indeterminate":a?"":void 0,"aria-valuemax":o,"aria-valuemin":s,"aria-valuenow":a?void 0:e,"aria-valuetext":(()=>{if(e!=null)return typeof r=="function"?r(e,l):i})(),role:c},percent:l,value:e}}var[It,Lt]=Ve({name:"ProgressStylesContext",errorMessage:`useProgressStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),Et=V((t,e)=>{const{min:s,max:o,value:i,isIndeterminate:r,role:a,...c}=t,l=kt({value:i,min:s,max:o,isIndeterminate:r,role:a}),h={height:"100%",...Lt().filledTrack};return n.jsx(z.div,{ref:e,style:{width:`${l.percent}%`,...c.style},...l.bind,...c,__css:h})}),We=V((t,e)=>{var s;const{value:o,min:i=0,max:r=100,hasStripe:a,isAnimated:c,children:l,borderRadius:d,isIndeterminate:h,"aria-label":f,"aria-labelledby":u,"aria-valuetext":g,title:m,role:x,...j}=qe(t),M=Qe("Progress",t),C=d??((s=M.track)==null?void 0:s.borderRadius),k={animation:`${Ct} 1s linear infinite`},D={...!h&&a&&c&&k,...h&&{position:"absolute",willChange:"left",minWidth:"50%",animation:`${bt} 1s ease infinite normal none running`}},b={overflow:"hidden",position:"relative",...M.track};return n.jsx(z.div,{ref:e,borderRadius:C,__css:b,...j,children:n.jsxs(It,{value:M,children:[n.jsx(Et,{"aria-label":f,"aria-labelledby":u,"aria-valuetext":g,min:i,max:r,value:o,isIndeterminate:h,css:D,borderRadius:C,title:m,role:x}),l]})})});We.displayName="Progress";function G(t){return Array.isArray?Array.isArray(t):Ge(t)==="[object Array]"}const At=1/0;function Tt(t){return t==null?"":function(e){if(typeof e=="string")return e;let s=e+"";return s=="0"&&1/e==-At?"-0":s}(t)}function F(t){return typeof t=="string"}function $e(t){return typeof t=="number"}function Nt(t){return t===!0||t===!1||function(e){return function(s){return typeof s=="object"}(e)&&e!==null}(t)&&Ge(t)=="[object Boolean]"}function T(t){return t!=null}function se(t){return!t.trim().length}function Ge(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const Dt=t=>`Missing ${t} property in key`,Ft=t=>`Property 'weight' in key '${t}' must be a positive integer`,ve=Object.prototype.hasOwnProperty;class Pt{constructor(e){this._keys=[],this._keyMap={};let s=0;e.forEach(o=>{let i=Ke(o);this._keys.push(i),this._keyMap[i.id]=i,s+=i.weight}),this._keys.forEach(o=>{o.weight/=s})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Ke(t){let e=null,s=null,o=null,i=1,r=null;if(F(t)||G(t))o=t,e=je(t),s=Me(t);else{if(!ve.call(t,"name"))throw new Error(Dt("name"));const a=t.name;if(o=a,ve.call(t,"weight")&&(i=t.weight,i<=0))throw new Error(Ft(a));e=je(a),s=Me(a),r=t.getFn}return{path:e,id:s,weight:i,src:o,getFn:r}}function je(t){return G(t)?t:t.split(".")}function Me(t){return G(t)?t.join("."):t}var v={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx{if(T(r))if(a[c]){const l=r[a[c]];if(!T(l))return;if(c===a.length-1&&(F(l)||$e(l)||Nt(l)))s.push(Tt(l));else if(G(l)){o=!0;for(let d=0,h=l.length;d{this._keysMap[s.id]=o})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,F(this.docs[0])?this.docs.forEach((e,s)=>{this._addString(e,s)}):this.docs.forEach((e,s)=>{this._addObject(e,s)}),this.norm.clear())}add(e){const s=this.size();F(e)?this._addString(e,s):this._addObject(e,s)}removeAt(e){this.records.splice(e,1);for(let s=e,o=this.size();s{let a=i.getFn?i.getFn(e):this.getFn(e,i.path);if(T(a)){if(G(a)){let c=[];const l=[{nestedArrIndex:-1,value:a}];for(;l.length;){const{nestedArrIndex:d,value:h}=l.pop();if(T(h))if(F(h)&&!se(h)){let f={v:h,i:d,n:this.norm.get(h)};c.push(f)}else G(h)&&h.forEach((f,u)=>{l.push({nestedArrIndex:u,value:f})})}o.$[r]=c}else if(F(a)&&!se(a)){let c={v:a,n:this.norm.get(a)};o.$[r]=c}}}),this.records.push(o)}toJSON(){return{keys:this.keys,records:this.records}}}function Ue(t,e,{getFn:s=v.getFn,fieldNormWeight:o=v.fieldNormWeight}={}){const i=new he({getFn:s,fieldNormWeight:o});return i.setKeys(t.map(Ke)),i.setSources(e),i.create(),i}function Y(t,{errors:e=0,currentLocation:s=0,expectedLocation:o=0,distance:i=v.distance,ignoreLocation:r=v.ignoreLocation}={}){const a=e/t.length;if(r)return a;const c=Math.abs(o-s);return i?a+c/i:c?1:a}const B=32;function zt(t,e,s,{location:o=v.location,distance:i=v.distance,threshold:r=v.threshold,findAllMatches:a=v.findAllMatches,minMatchCharLength:c=v.minMatchCharLength,includeMatches:l=v.includeMatches,ignoreLocation:d=v.ignoreLocation}={}){if(e.length>B)throw new Error(`Pattern length exceeds max of ${B}.`);const h=e.length,f=t.length,u=Math.max(0,Math.min(o,f));let g=r,m=u;const x=c>1||l,j=x?Array(f):[];let M;for(;(M=t.indexOf(e,m))>-1;){let b=Y(e,{currentLocation:M,expectedLocation:u,distance:i,ignoreLocation:d});if(g=Math.min(b,g),m=M+h,x){let I=0;for(;I=O;w-=1){let _=w-1,S=s[t.charAt(_)];if(x&&(j[_]=+!!S),y[w]=(y[w+1]<<1|1)&S,b&&(y[w]|=(C[w+1]|C[w])<<1|1|C[w+1]),y[w]&Q&&(k=Y(e,{errors:b,currentLocation:_,expectedLocation:u,distance:i,ignoreLocation:d}),k<=g)){if(g=k,m=_,m<=u)break;O=Math.max(1,2*u-m)}}if(Y(e,{errors:b+1,currentLocation:u,expectedLocation:u,distance:i,ignoreLocation:d})>g)break;C=y}const D={isMatch:m>=0,score:Math.max(.001,k)};if(x){const b=function(I=[],L=v.minMatchCharLength){let O=[],E=-1,y=-1,w=0;for(let _=I.length;w<_;w+=1){let S=I[w];S&&E===-1?E=w:S||E===-1||(y=w-1,y-E+1>=L&&O.push([E,y]),E=-1)}return I[w-1]&&w-E>=L&&O.push([E,w-1]),O}(j,c);b.length?l&&(D.indices=b):D.isMatch=!1}return D}function Bt(t){let e={};for(let s=0,o=t.length;s{this.chunks.push({pattern:u,alphabet:Bt(u),startIndex:g})},f=this.pattern.length;if(f>B){let u=0;const g=f%B,m=f-g;for(;u{const{isMatch:M,score:C,indices:k}=zt(e,m,x,{location:i+j,distance:r,threshold:a,findAllMatches:c,minMatchCharLength:l,includeMatches:o,ignoreLocation:d});M&&(u=!0),f+=C,M&&k&&(h=[...h,...k])});let g={isMatch:u,score:u?f/this.chunks.length:1};return u&&o&&(g.indices=h),g}}const _e=[];function Se(t,e){for(let s=0,o=_e.length;s{if(!T(o.indices)||!o.indices.length)return;const{indices:i,value:r}=o;let a={indices:i,value:r};o.key&&(a.key=o.key.src),o.idx>-1&&(a.refIndex=o.idx),e.matches.push(a)})}function $t(t,e){e.score=t.score}class K{constructor(e,s={},o){if(this.options={...v,...s},this.options.useExtendedSearch)throw new Error("Extended search is not available");this._keyStore=new Pt(this.options.keys),this.setCollection(e,o)}setCollection(e,s){if(this._docs=e,s&&!(s instanceof he))throw new Error("Incorrect 'index' type");this._myIndex=s||Ue(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){T(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const s=[];for(let o=0,i=this._docs.length;o{let u=1;f.matches.forEach(({key:g,norm:m,score:x})=>{const j=g?g.weight:null;u*=Math.pow(x===0&&j?Number.EPSILON:x,(j||1)*(h?1:m))}),f.score=u})}(l,{ignoreFieldNorm:c}),r&&l.sort(a),$e(s)&&s>-1&&(l=l.slice(0,s)),function(d,h,{includeMatches:f=v.includeMatches,includeScore:u=v.includeScore}={}){const g=[];return f&&g.push(Wt),u&&g.push($t),d.map(m=>{const{idx:x}=m,j={item:h[x],refIndex:x};return g.length&&g.forEach(M=>{M(m,j)}),j})}(l,this._docs,{includeMatches:o,includeScore:i})}_searchStringList(e){const s=Se(e,this.options),{records:o}=this._myIndex,i=[];return o.forEach(({v:r,i:a,n:c})=>{if(!T(r))return;const{isMatch:l,score:d,indices:h}=s.searchIn(r);l&&i.push({item:r,idx:a,matches:[{score:d,value:r,norm:c,indices:h}]})}),i}_searchLogical(e){throw new Error("Logical search is not available")}_searchObjectList(e){const s=Se(e,this.options),{keys:o,records:i}=this._myIndex,r=[];return i.forEach(({$:a,i:c})=>{if(!T(a))return;let l=[];o.forEach((d,h)=>{l.push(...this._findMatches({key:d,value:a[h],searcher:s}))}),l.length&&r.push({idx:c,item:a,matches:l})}),r}_findMatches({key:e,value:s,searcher:o}){if(!T(s))return[];let i=[];if(G(s))s.forEach(({v:r,i:a,n:c})=>{if(!T(r))return;const{isMatch:l,score:d,indices:h}=o.searchIn(r);l&&i.push({score:d,key:e,value:r,idx:a,norm:c,indices:h})});else{const{v:r,n:a}=s,{isMatch:c,score:l,indices:d}=o.searchIn(r);c&&i.push({score:l,key:e,value:r,norm:a,indices:d})}return i}}K.version="7.0.0",K.createIndex=Ue,K.parseIndex=function(t,{getFn:e=v.getFn,fieldNormWeight:s=v.fieldNormWeight}={}){const{keys:o,records:i}=t,r=new he({getFn:e,fieldNormWeight:s});return r.setKeys(o),r.setIndexRecords(i),r},K.config=v;function Gt({selectedModel:t,setSelectedModel:e,modelTypeList:s}){const o=i=>{e(i)};return n.jsx(ze,{children:s.map(i=>n.jsx(de,{children:n.jsx(A,{colorScheme:"blue",variant:t===i?"solid":"outline",onClick:()=>o(i),size:"sm",children:i})},i))})}const Kt={checkpoints:"CheckpointLoaderSimple",vae:"VAELoader",loras:"LoraLoader",controlnet:"ControlNetLoader",upscale_models:"UpscaleModelLoader"};function Ut({data:t}){const[e,s]=p.useState("https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/27fd7433-cb0a-4a87-88c1-21ccb2b1a842/width=450/00060-881622046.jpeg"),[o,i]=p.useState(!t.file_hash),[r,a]=p.useState();p.useEffect(()=>{i(!t.file_hash),c()},[t.file_hash]);const c=async()=>{var h;const d=await $.models.get(t.model_name+"@"+t.model_type);if(d!=null&&(a(d),(h=d.imageUrl)!=null&&h.length&&s(d.imageUrl)),!(d!=null&&d.imageUrl)&&t.file_hash!=null)try{const f=await le(t.file_hash),u=f.imageUrl;u&&s(u);const g={id:t.model_name+"@"+t.model_type,fileHash:t.file_hash,fileFolder:t.model_type,fileName:t.model_name+t.model_extension,modelName:f.modelName??null,civitModelID:f.civitModelID,civitModelVersionID:f.civitModelVersionID,imageUrl:u??null};a(g)}catch{}t.preview&&s(t.preview)},l=d=>{const h=Kt[t.model_type];h&&(d.dataTransfer.setData("eventName","WorkspaceManagerAddNode"),d.dataTransfer.setData("modelRelativePath",t.model_name+t.model_extension),d.dataTransfer.setData("nodeType",h))};return n.jsxs(oe,{children:[n.jsxs(oe,{position:"relative",borderRadius:4,draggable:!0,onDragStart:l,children:[o?n.jsx(R,{bg:"rgba(0, 0, 0, 0.5)",height:178,justifyContent:"center",alignItems:"center",children:n.jsx(ae,{})}):n.jsx(Ee,{src:e,draggable:!1,boxSize:"100%",height:150,objectFit:"cover",borderRadius:4,cursor:(r==null?void 0:r.civitModelID)!=null?"pointer":"auto",onClick:()=>{(r==null?void 0:r.civitModelID)==null||(r==null?void 0:r.civitModelVersionID)==null||window.open(`https://civitai.com/models/${r==null?void 0:r.civitModelID}?modelVersionId=${r==null?void 0:r.civitModelVersionID}`)}}),n.jsx(N,{position:"absolute",bottom:"0",left:"0",right:"0",color:"white",fontSize:14})]}),n.jsx(ie,{label:n.jsxs("span",{children:[t.model_name+t.model_extension,n.jsx("br",{}),t.date.toLocaleDateString()]}),children:n.jsx(N,{textAlign:"center",p:"1",fontSize:14,noOfLines:2,children:t.model_name+t.model_extension})})]})}function Ht({list:t}){return n.jsx(Mt,{templateColumns:"repeat(3, minmax(0, 1fr))",gap:1,marginTop:2,children:t.map(e=>n.jsx(Be,{children:n.jsx(Ut,{data:e})},e.model_name+e.date.getTime()))})}function Vt(){const{setRoute:t}=p.useContext(Ae);return n.jsx(n.Fragment,{children:n.jsx(A,{size:"sm",colorScheme:"teal",onClick:()=>t("installModels"),children:"Install Models"})})}const qt=()=>{const[t,e]=p.useState(["checkpoints"]),[s,o]=p.useState([]),[i,r]=p.useState(!0);p.useEffect(()=>{a(),ce.addEventListener("model_list",async l=>{c(l.detail)})},[]);const a=async()=>{const l=await ct();c(l)},c=async l=>{if(!l)return;r(!1);const d=Array.from(new Set(l.map(f=>f.model_type))),h=d.indexOf("checkpoints");h>=0&&d.splice(h,1),d.unshift("checkpoints"),e(d),o(l.map(f=>({...f,date:new Date(f.date*1e3)})))};return{modelTypeList:t,modelsList:s,loading:i}};function Qt(){const[t,e]=p.useState(!1),s=()=>{var a;(a=H)==null||a.getSetting("showNsfwModelThumbnail").then(c=>{e(c??!1)})};p.useEffect(()=>{s()},[]);const o=a=>{var l;const c=a.target.checked;(l=H)==null||l.upsert({showNsfwModelThumbnail:c}).then(()=>{s(),i(),window.dispatchEvent(new Event("showNsfwModelThumbnail"))})},i=async()=>{const a=await $.models.toArray();for(let c=0;c{try{if(a.fileHash==null)return;const l=(await le(a.fileHash)).imageUrl;$.models.update(a.id,{imageUrl:l??null})}catch{}};return n.jsx(_t,{isChecked:t,onChange:o,children:"Show NSFW"})}function Yt(){const t=async e=>{if(e.dataTransfer.getData("eventName")!=="WorkspaceManagerAddNode")return;const o=e.dataTransfer.getData("modelRelativePath"),i=e.dataTransfer.getData("nodeType"),r=LiteGraph.createNode(i);r.pos=[e.canvasX,e.canvasY],r.configure({widgets_values:[o]}),U.graph.add(r)};return p.useEffect(()=>(U.canvasEl.addEventListener("drop",t),()=>{U.canvasEl.removeEventListener("drop",t)}),[]),null}function Jt({onClose:t}){const[e,s]=p.useState("checkpoints"),[o,i]=p.useState(""),[r,a]=p.useState("name"),{loading:c,modelTypeList:l,modelsList:d}=qt(),[h,f]=p.useState([]),[u,g]=p.useState([]);p.useEffect(()=>{x();async function x(){const j=await $.models.toArray();f(d.map(M=>({...M,db:j.find(C=>C.id===M.model_name+"@"+M.model_type)})))}},[d]),p.useEffect(()=>{let x=[];o.length?x=new K(h,{keys:["model_name","db.modelName"]}).search(o).map(C=>C.item):x=d.filter(j=>j.model_type===e).sort((j,M)=>r==="name"?j.model_name.localeCompare(M.model_name):M.date.getTime()-j.date.getTime()),g(x)},[e,d,o,r,h]),p.useEffect(()=>(U.canvasEl.addEventListener("click",t),()=>{U.canvasEl.removeEventListener("click",t)}),[t]);const m=440;return n.jsx(Ye,{children:n.jsxs(oe,{style:{width:m},children:[n.jsxs(Te,{width:m,height:"100vh",p:4,gap:2,position:"fixed",top:0,left:0,shadow:"xl",zIndex:dt,overflowY:"auto",children:[n.jsxs(R,{justifyContent:"space-between",alignContent:"center",py:3,children:[n.jsx(Ne,{size:"md",mr:2,children:"Models"}),n.jsx(Vt,{})]}),n.jsx(R,{gap:4,justifyContent:"center",alignItems:"center",mb:1,children:n.jsx(X,{size:"sm",placeholder:"Search",value:o,onChange:x=>i(x.target.value)})}),n.jsxs(R,{gap:4,justifyContent:"space-between",alignItems:"center",mb:1,children:[!o.length&&n.jsxs(W,{children:[n.jsx("span",{children:"Sort By"}),n.jsxs(Z,{value:r,size:"sm",width:"120px",onChange:x=>a(x.target.value),children:[n.jsx("option",{value:"name",children:"Name"}),n.jsx("option",{value:"date",children:"Date"})]})]}),n.jsx(Qt,{})]}),!o.length&&n.jsx(Gt,{modelTypeList:l,setSelectedModel:s,selectedModel:e}),n.jsx(Ht,{list:u}),c&&n.jsx(R,{justifyContent:"center",alignItems:"center",height:"100%",children:n.jsx(ae,{})})]}),n.jsx(Yt,{})]})})}const Xt=async t=>{try{const s=await(await ce.fetchApi("/model_manager/install_model",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).text();window.dispatchEvent(new CustomEvent("model_install_message",{detail:s}))}catch(e){console.error("Failed to connect to the server:",e)}};function be(t,e=1){const i=t/1024;return i>=1024?(i/1024).toFixed(e)+" GB":i.toFixed(e)+" MB"}function Ce(t,e){if(!t||t.length===0)return;let s=t.find(o=>o.nsfw==="None"||o.nsfwLevel===1);return e&&(s=s??t[0]),s}function Zt(t,e=280,s){var o,i,r,a;if(t){if(t.images)return`https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/${(o=Ce(t.images,s))==null?void 0:o.url}/width=${e}/`;if(De(t))return(a=Ce((r=(i=t.modelVersions)==null?void 0:i.at(0))==null?void 0:r.images,s))==null?void 0:a.url}}const ne=280;function es({model:t,onClickInstallModel:e,installing:s}){var u,g;const[o,i]=p.useState();p.useEffect(()=>{m();async function m(){var j;const x=await((j=H)==null?void 0:j.getSetting("showNsfwModelThumbnail"));i(Zt(t,ne,x))}},[t]);const r=De(t)?t.modelVersions:t.versions,[a,c]=p.useState(((u=r==null?void 0:r[0])==null?void 0:u.name)??""),l=r==null?void 0:r.find(m=>(m==null?void 0:m.name)===a),d=()=>{window.open(`https://civitai.com/models/${t.id}`)},h=p.useCallback(()=>{if(l==null){console.error("no file is find by name",a);return}e(xe(l,t.name),t)},[a]),f=(g=xe(l))==null?void 0:g.sizeKB;return n.jsxs(Te,{width:ne,justifyContent:"space-between",mb:2,gap:1,children:[n.jsx(Ee,{borderRadius:3,boxSize:ne+"px",objectFit:"cover",src:o,alt:"model cover image",cursor:"pointer",onClick:()=>d()}),n.jsxs(q,{p:1,children:[n.jsx(ie,{label:t.name,children:n.jsx(N,{fontWeight:500,noOfLines:1,children:t.name})}),n.jsxs(R,{justifyContent:"space-between",alignItems:"center",children:[n.jsx(A,{borderRadius:14,noOfLines:1,size:"xs",colorScheme:"teal",maxWidth:"40%",flexShrink:1,variant:"outline",px:1,cursor:"text",children:n.jsx(N,{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:t.type})}),n.jsx(A,{leftIcon:n.jsx(ht,{size:18}),iconSpacing:1,borderRadius:10,size:"sm",py:1,colorScheme:"teal",type:"submit",onClick:()=>h(),isDisabled:!!(a&&s.includes(a)),children:"Install"})]}),n.jsxs(W,{children:[n.jsx(Z,{size:"md",style:{paddingLeft:4},onChange:m=>{c(m.target.value)},children:r==null?void 0:r.map(m=>{const x=m==null?void 0:m.name;return x?n.jsx("option",{value:x,style:{padding:0},children:x},m.id):null})}),f&&n.jsx(ie,{label:be(f),children:n.jsx(N,{flexShrink:1,noOfLines:1,width:"40%",children:be(f)})})]})]})]})}function ts({searchQuery:t,setSearchQuery:e,onSearch:s}){return n.jsxs(R,{gap:1,alignItems:"center",grow:1,children:[n.jsx(X,{placeholder:"Search models in CivitAI",width:"60%",value:t,onChange:o=>e(o.target.value),onKeyUp:o=>{o.code==="Enter"&&s()}}),n.jsx(A,{size:"sm",onClick:()=>s(),colorScheme:"teal",children:"Search"})]})}function ss({isOpen:t,fileSelected:e,onClose:s,selectFolder:o}){const[i,r]=p.useState(""),[a,c]=p.useState([]),[l,d]=p.useState(""),h=p.useRef(null);p.useEffect(()=>{f()},[]);const f=async()=>{const u=await Fe();u&&(["custom_nodes","config","saved_prompts"].forEach(g=>{delete u[g]}),c(Object.values(u).flatMap(g=>g)))};return n.jsx(Je,{isOpen:t,leastDestructiveRef:h,onClose:s,children:n.jsx(ke,{children:n.jsxs(Xe,{children:[n.jsx(Ie,{fontSize:"lg",fontWeight:"bold",children:"Choose Folder"}),n.jsx(Le,{children:n.jsxs(q,{spacing:4,children:[!e&&n.jsxs(n.Fragment,{children:[n.jsx(N,{children:"Model download url"}),n.jsx(X,{placeholder:"https://civitai.com/api/download/models/311399",onChange:u=>d(u.target.value),value:l})]}),n.jsx(N,{children:"Choose model install folder"}),n.jsx(Z,{placeholder:"Select option",value:i,onChange:u=>r(u.target.value),children:a.map(u=>n.jsx("option",{value:u,children:u},u))})]})}),n.jsxs(Ze,{children:[n.jsx(A,{ref:h,onClick:s,children:"Cancel"}),n.jsx(A,{onClick:()=>o(i,l),ml:3,isDisabled:l.length===0,children:"Confirm"})]})]})})})}function ns(){const{colorMode:t}=et(),e=Pe(),[s,o]=p.useState([]);return p.useEffect(()=>{ye.addEventListener("download_progress",i=>{o(i.detail)}),ye.addEventListener("download_error",i=>{e({title:"Download Error",description:i.detail,status:"error",duration:4e3,isClosable:!0})})},[]),n.jsx(q,{spacing:5,pos:"absolute",bottom:"0",left:"0",width:"50%",zIndex:80,backgroundColor:t==="light"?"white":"#242424",paddingX:5,pt:2,children:s.map(({save_path:i,progress:r})=>n.jsxs(W,{children:[n.jsx(N,{fontSize:16,width:"40%",children:i.replace(/^.*[\\/]/,"")}),n.jsx(We,{isIndeterminate:!r,hasStripe:!0,width:"50%",value:r}),n.jsxs(N,{fontSize:16,width:"10%",children:[r.toFixed(1),"%"]}),n.jsx(A,{variant:"outline",size:"sm",colorScheme:"red",onClick:()=>ut(i),children:"Cancel"})]},i))})}function os(){const[t,e]=p.useState(""),{onOpen:s,onClose:o,isOpen:i}=Oe(),r=()=>{xt(t),o()};return n.jsxs(ft,{isOpen:i,onOpen:s,onClose:o,placement:"right",closeOnBlur:!1,children:[n.jsx(pt,{children:n.jsx(A,{size:"sm",py:1,mr:8,children:"Set Civitai API Key"})}),n.jsxs(mt,{p:5,children:[n.jsx(Re,{}),n.jsx(gt,{}),n.jsxs(q,{spacing:4,children:[n.jsx(N,{fontSize:14,children:"Some Civitai.com models require user login to download, you will nedd a Civitai API key to download in that case"}),n.jsx(X,{value:t,onChange:a=>e(a.target.value),placeholder:"API Key"}),n.jsx(A,{size:"sm",py:1,mr:8,onClick:r,children:"Save"})]})]})]})}async function is(t,e){var a,c;const s={queries:[{q:t,indexUid:"models_v9",facets:["category.name","checkpointType","fileFormats","lastVersionAtUnix","tags.name","type","user.username","version.baseModel"],attributesToHighlight:["*"],highlightPreTag:"__ais-highlight__",highlightPostTag:"__/ais-highlight__",limit:80,offset:0}]};return e&&(s.queries[0].filter=[[`"type"="${e}"`]]),((c=(a=await(await fetch("https://meilisearch-v1-6.civitai.com/multi-search",{headers:{"Content-Type":"application/json",Authorization:"Bearer 102312c2b83ea0ef9ac32e7858f742721bbfd7319a957272e746f84fd1e974af"},method:"POST",body:JSON.stringify(s)})).json())==null?void 0:a.results)==null?void 0:c.at(0)).hits??[]}function rs({onclose:t,searchQuery:e="",modelType:s}){const[o,i]=p.useState([]),[r,a]=p.useState(!1),[c,l]=p.useState(s),d=Pe(),[h,f]=p.useState([]),[u,g]=p.useState(e),{isOpen:m,onOpen:x,onClose:j}=Oe(),[M,C,k]=yt(),[P,Q]=p.useState({}),[D,b]=p.useState(ee),I=p.useCallback(async()=>{var S;a(!0);const y=await is(u,c);i(y);const w=await Fe();w&&Q(w);const _=await((S=H)==null?void 0:S.getSetting("defaultFolders"));_&&b(_),a(!1)},[u,c]),L=(y,w)=>{var fe,pe,me,ge;if(!((fe=k.current)!=null&&fe.id)&&!w){console.error("no url to download");return}let _=w??`https://civitai.com/api/download/models/${(pe=k.current)==null?void 0:pe.id}`,S=(me=k.current)==null?void 0:me.name;if(!S&&(S=_.split("/").pop(),!S)){console.error("downloadUrl is malformed");return}d({title:"Installing...",description:S,status:"info",duration:4e3,isClosable:!0}),S!=null&&f(He=>[...He,S??""]);const ue=vt();ue&&(_+=`?token=${ue}`),Xt({file_hash:(ge=k.current)==null?void 0:ge.SHA256,filename:S,save_path:y,url:_}),C(void 0),j()},O=async(y,w)=>{const _=D[w.type];C(y),_==null?x():L(_)},E=async(y,w)=>{var S;const _={...D,[y]:w};await((S=H)==null?void 0:S.upsert({defaultFolders:_})),b(_)};return p.useEffect(()=>{I()},[c]),n.jsxs(n.Fragment,{children:[n.jsxs(tt,{isOpen:!0,onClose:t,blockScrollOnMount:!0,children:[n.jsx(ke,{}),n.jsxs(st,{width:"90%",maxWidth:"90vw",height:"90vh",children:[n.jsxs(Ie,{pb:1,children:[n.jsxs(W,{gap:2,mb:2,alignItems:"center",children:[n.jsx(Ne,{size:"md",mr:2,children:"Models"}),n.jsx(ts,{searchQuery:u,setSearchQuery:g,onSearch:I}),n.jsx(A,{size:"sm",py:1,mr:8,onClick:x,children:"Custom URL Install"}),n.jsx(os,{})]}),n.jsxs(W,{gap:2,wrap:"wrap",children:[n.jsx(A,{size:"sm",py:1,onClick:()=>{l(void 0)},isActive:c==null,children:"All"}),wt.map(y=>n.jsx(A,{size:"sm",py:1,isActive:c===y,onClick:()=>{l(y)},children:y},y)),c&&P[ee[c]]&&n.jsxs(W,{ml:"auto",children:[n.jsx(N,{fontSize:17,whiteSpace:"nowrap",children:"Default Download Folder:"}),n.jsx(Z,{value:D[c],onChange:y=>E(c,y.target.value),children:P[ee[c]].map(y=>n.jsx("option",{value:y,children:y},y))})]})]}),r&&n.jsx(ae,{thickness:"4px",emptyColor:"gray.200",color:"pink.500",size:"lg"})]}),n.jsx(nt,{}),n.jsxs(Le,{overflowY:"auto",children:[n.jsx(W,{wrap:"wrap",children:o==null?void 0:o.map(y=>n.jsx(es,{model:y,onClickInstallModel:O,installing:h},y.id))}),n.jsx(ns,{})]})]})]}),n.jsx(ss,{fileSelected:!!M,isOpen:m,onClose:j,selectFolder:(y,w)=>{L(y,k.current?void 0:w)}})]})}const as=p.lazy(()=>ot(()=>import("./InstallMissingModelsButton-s0RcQvMb.js"),__vite__mapDeps([0,1,2,3,4,5,6])));function ls(){const{setRoute:t,route:e}=p.useContext(Ae);return p.useEffect(()=>{ce.addEventListener("model_list",async s=>{var r;const o=(r=s.detail)==null?void 0:r.map(async a=>{const c=await $.models.get(a.model_name+"@"+a.model_type);if(c!=null&&c.fileHash)return c;let l={id:a.model_name+"@"+a.model_type,modelName:null,fileHash:a.file_hash??null,fileFolder:a.model_type,fileName:a.model_name+a.model_extension};if(!a.file_hash)return l;const d=await le(a.file_hash);return l={...l,modelName:d.modelName??null,civitModelID:d.civitModelID,civitModelVersionID:d.civitModelVersionID,imageUrl:d.imageUrl??null},l}),i=(await Promise.all(o)).filter(a=>a!=null);await $.models.clear(),await $.models.bulkPut(i.filter(a=>a!=null)),window.dispatchEvent(new CustomEvent("model_list_updated"))})},[]),n.jsxs(q,{style:{position:"relative"},children:[n.jsx(A,{size:"sm",backgroundColor:"#434554",color:"white",colorScheme:"blue","aria-label":"My models",onClick:()=>t("modelList"),px:1,height:jt+"px",children:"Models"}),n.jsx("div",{style:{position:"absolute",top:"38px",left:"0px"},children:n.jsx(p.Suspense,{children:n.jsx(as,{})})}),e==="modelList"&&n.jsx(Jt,{onClose:()=>t("root")}),e==="installModels"&&n.jsx(rs,{modelType:"Checkpoint",onclose:()=>t("root")})]})}const ps=Object.freeze(Object.defineProperty({__proto__:null,default:ls},Symbol.toStringTag,{value:"Module"}));export{Be as G,ps as M,Xt as i}; -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["workspace_web/InstallMissingModelsButton-s0RcQvMb.js","workspace_web/input.js","workspace_web/App-eQybp91e.js","workspace_web/assets/App-JXePnJiV.css","workspace_web/chunk-JARCRF6W-OjDz07lE.js","workspace_web/chunk-7D6N5TE5-lFR77IBa.js","workspace_web/chunk-3RSXBRAN-LXNJ9qB5.js"] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} \ No newline at end of file diff --git a/dist/workspace_web/RecentFilesDrawer-h9_pZtx6.js b/dist/workspace_web/RecentFilesDrawer-h9_pZtx6.js deleted file mode 100644 index 6a49951..0000000 --- a/dist/workspace_web/RecentFilesDrawer-h9_pZtx6.js +++ /dev/null @@ -1,5 +0,0 @@ -import{f as Q,E as qe,j as e,Z as Je,h as ie,g as we,r,M as re,N as le,O as ce,Q as de,R as ue,S as he,W as ve,i as W,$ as ke,T as Qe}from"./input.js";import{m as Le,u as Ae,a as et,b as tt,c as st,S as nt,M as at,d as A,H as z,T as We,I as P,t as je,e as Ne,f as Y,E as me,g as B,h as L,i as R,j as pe,k as C,R as H,l as ot,n as Me,B as _,F as Z,o as Fe,p as it,q as rt,r as ee,s as te,v as N,w as lt,D as Pe,x as T,y as Re,z as ct,A as Se,C as dt,G as _e,J as ut,K as G,L as ht,N as pt,O as gt,P as mt,Q as Be,U as ft,V as xt,W as jt,X as U,Y as ye,Z as Ce,_ as yt,$ as wt,a0 as $e,a1 as vt,a2 as kt,a3 as St,a4 as J,a5 as oe,a6 as Ct,a7 as bt,a8 as It,a9 as fe,aa as Mt}from"./App-eQybp91e.js";import{G as Ft,C as q}from"./chunk-JARCRF6W-OjDz07lE.js";import{V as Ke}from"./chunk-NTCQBYKE-a6jE7X_b.js";import{N as Dt,a as Et,I as Tt,M as Ot,u as zt,S as Lt}from"./MediaPreview-gKBl9R3H.js";import{I as At}from"./IconCopy-D2k-9fMf.js";import"./chunk-7D6N5TE5-lFR77IBa.js";import"./IconSearch-3Gq-3maw.js";var Ge=Q(function(t,l){const{columns:o,spacingX:n,spacingY:a,spacing:u,minChildWidth:p,...i}=t,h=qe(),d=p?Nt(p,h):Pt(o);return e.jsx(Ft,{ref:l,gap:u,columnGap:n,rowGap:a,templateColumns:d,...i})});Ge.displayName="SimpleGrid";function Wt(s){return typeof s=="number"?`${s}px`:s}function Nt(s,t){return Le(s,l=>{const o=Je("sizes",l,Wt(l))(t);return l===null?null:`repeat(auto-fit, minmax(${o}, 1fr))`})}function Pt(s){return Le(s,t=>t===null?null:`repeat(${t}, minmax(0, 1fr))`)}var He=Q((s,t)=>{const{title:l,children:o,className:n,...a}=s,u=ie("chakra-menu__group__title",n),p=Ae();return e.jsxs("div",{ref:t,className:"chakra-menu__group",role:"group",children:[l&&e.jsx(we.p,{className:u,...a,__css:p.groupTitle,children:l}),o]})});He.displayName="MenuGroup";var Ve=s=>{const{className:t,title:l,...o}=s,n=et(o);return e.jsx(He,{title:l,className:ie("chakra-menu__option-group",t),...n})};Ve.displayName="MenuOptionGroup";var Rt=Q((s,t)=>{const l=Ae();return e.jsx(we.button,{ref:t,...s,__css:{display:"inline-flex",appearance:"none",alignItems:"center",outline:0,...l.button}})}),se=Q((s,t)=>{const{children:l,as:o,...n}=s,a=tt(n,t),u=o||Rt;return e.jsx(u,{...a,className:ie("chakra-menu__menu-button",s.className),children:e.jsx(we.span,{__css:{pointerEvents:"none",flex:"1 1 auto",minW:0},children:s.children})})});se.displayName="MenuButton";var _t=s=>e.jsx("svg",{viewBox:"0 0 14 14",width:"1em",height:"1em",...s,children:e.jsx("polygon",{fill:"currentColor",points:"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039"})}),be=Q((s,t)=>{const{icon:l,iconSpacing:o="0.75rem",...n}=s,a=st(n,t);return e.jsxs(nt,{...a,className:ie("chakra-menu__menuitem-option",n.className),children:[l!==null&&e.jsx(at,{fontSize:"0.8em",marginEnd:o,opacity:s.isChecked?1:0,children:l||e.jsx(_t,{})}),e.jsx("span",{style:{flex:1},children:a.children})]})});be.id="MenuItemOption";be.displayName="MenuItemOption";var Bt=A("chevron-up","IconChevronUp",[["path",{d:"M6 15l6 -6l6 6",key:"svg-0"}]]),$t=A("dots-vertical","IconDotsVertical",[["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),Kt=A("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]),De=A("file-import","IconFileImport",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M5 13v-8a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-5.5m-9.5 -2h7m-3 -3l3 3l-3 3",key:"svg-1"}]]),Gt=A("file","IconFile",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}]]),Ue=A("folder-plus","IconFolderPlus",[["path",{d:"M12 19h-7a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2h4l3 3h7a2 2 0 0 1 2 2v3.5",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}]]),Ht=A("list-check","IconListCheck",[["path",{d:"M3.5 5.5l1.5 1.5l2.5 -2.5",key:"svg-0"}],["path",{d:"M3.5 11.5l1.5 1.5l2.5 -2.5",key:"svg-1"}],["path",{d:"M3.5 17.5l1.5 1.5l2.5 -2.5",key:"svg-2"}],["path",{d:"M11 6l9 0",key:"svg-3"}],["path",{d:"M11 12l9 0",key:"svg-4"}],["path",{d:"M11 18l9 0",key:"svg-5"}]]),Vt=A("lock-open","IconLockOpen",[["path",{d:"M5 11m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M12 16m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M8 11v-5a4 4 0 0 1 8 0",key:"svg-2"}]]),Ut=A("menu-2","IconMenu2",[["path",{d:"M4 6l16 0",key:"svg-0"}],["path",{d:"M4 12l16 0",key:"svg-1"}],["path",{d:"M4 18l16 0",key:"svg-2"}]]),Zt=A("moon","IconMoon",[["path",{d:"M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z",key:"svg-0"}]]),Yt=A("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]),Xt=A("sun","IconSun",[["path",{d:"M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0",key:"svg-0"}],["path",{d:"M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7",key:"svg-1"}]]),qt=A("tag","IconTag",[["path",{d:"M7.5 7.5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592 -5.592a2.41 2.41 0 0 0 0 -3.408l-7.71 -7.71a2 2 0 0 0 -1.414 -.586h-5.172a3 3 0 0 0 -3 3z",key:"svg-1"}]]),Jt=A("upload","IconUpload",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 9l5 -5l5 5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);function Qt({onclose:s}){const[t,l]=r.useState([]),o=async()=>{var a;const n=await((a=je)==null?void 0:a.listAll());l(n??[])};return r.useEffect(()=>{o()},[]),e.jsxs(re,{isOpen:!0,onClose:s,children:[e.jsx(le,{}),e.jsxs(ce,{children:[e.jsx(de,{children:"My Tags"}),e.jsx(ue,{}),e.jsx(he,{children:t.map(n=>e.jsxs(z,{children:[e.jsx(We,{children:n.name}),e.jsx(P,{onClick:async()=>{var a;await((a=je)==null?void 0:a.delete(n.name)),o()},"aria-label":"delete-tag",colorScheme:"red",variant:"ghost",icon:e.jsx(Ne,{})})]}))})]})]})}function es(){const s=Y(),t=r.useRef([{title:"Save current workflow",key:me.SAVE},{title:"Save as current workflow",key:me.SAVE_AS},{title:"Open spotlight search",key:me.openSpotlightSearch}]),[l,o]=r.useState({save:"",saveAs:"",openSpotlightSearch:""}),[n,a]=r.useState(),u=async(i,h)=>{var g;i.preventDefault();let d="";if(i.ctrlKey&&(d+="Control+"),i.metaKey&&(d+="Command+"),i.shiftKey&&(d+="Shift+"),i.altKey&&(d+="Alt+"),d.length>0&&!["Control","Shift","Alt","Meta"].includes(i.key)){d+=i.key.toUpperCase();const m={...l};delete m[h],Object.values(m).includes(d)?s({title:"Shortcut key conflict",description:`The shortcut key 「${d}」 is already used, please - modify it.`,status:"info",duration:3e3,position:"top",isClosable:!1}):(await((g=C)==null?void 0:g.upsert({shortcuts:{...l,[h]:d}})),p())}},p=()=>{var i;(i=C)==null||i.getSetting("shortcuts").then(h=>{var g;const d=h??((g=C)==null?void 0:g.defaultSettings.shortcuts);o({...l,...d})})};return r.useEffect(()=>{p()},[]),e.jsxs(B,{children:[e.jsx(L,{children:"Keyboard Shortcut"}),t.current.map(i=>e.jsxs(z,{children:[e.jsx(L,{fontSize:"sm",w:170,children:i.title}),e.jsx(R,{label:"Press shortcut key combinations to setup",placement:"bottom",hasArrow:!0,isOpen:n===i.key,children:e.jsx(pe,{value:l[i.key],onKeyDown:h=>{u(h,i.key)},onFocus:()=>{a(i.key)},onBlur:()=>{a(void 0)},placeholder:"Press a key combination",readOnly:!0,width:"auto",flex:1})})]},i.key))]})}function ts(){const{setRefreshFolderStamp:s}=r.useContext(H),[t,l]=r.useState(!1),o=()=>{var a;(a=C)==null||a.getSetting("foldersOnTop").then(u=>{l(!!u)})},n=a=>{var p;const u=a.target.checked;(p=C)==null||p.upsert({foldersOnTop:u}).then(()=>{o(),s(Date.now())})};return r.useEffect(()=>{o()},[]),e.jsx(B,{children:e.jsx(q,{isChecked:t,onChange:n,children:"Folders always on top"})})}function ss(){const[s,t]=r.useState(!1),[l,o]=r.useState(""),{showDialog:n}=ve(),a=()=>{var p,i;(p=C)==null||p.getSetting("myWorkflowsDir").then(h=>{o(h??"undefined")}),(i=C)==null||i.getSetting("twoWaySync").then(h=>{t(h??!1)})};r.useEffect(()=>{a()},[]);const u=async p=>{var h,d;if(!p.target.checked){await((h=C)==null?void 0:h.upsert({twoWaySync:p.target.checked})),a();return}const i=await((d=C)==null?void 0:d.getSetting("myWorkflowsDir"));n(e.jsx(ot,{myWorkflowsDir:i??"undefined"}),[{label:"I have downloaded all my workflows and ready to enable",onClick:async()=>{var g;await((g=C)==null?void 0:g.upsert({twoWaySync:!0})),a()},colorScheme:"red"}])};return e.jsxs(B,{children:[e.jsx(L,{children:"Only for legacy two way sync users to get back their data. Do not disable two way sync if you have already enabled it. It may cause some unexpected issues."}),e.jsx(q,{isChecked:s,onChange:u,children:"Enable two way sync"})]})}function Ee({settingKey:s,text:t,defaultChecked:l=!1}){const[o,n]=r.useState(l),a=Y(),u=()=>{var p;(p=C)==null||p.getSetting(s).then(i=>{n(!!i)})};return r.useEffect(()=>{u()},[]),e.jsx(B,{children:e.jsx(q,{isChecked:o,onChange:async p=>{var i;await((i=C)==null?void 0:i.upsert({[s]:p.target.checked})),u(),a({title:"Setting saved. Please refresh to see the changes.",status:"success",duration:3e3,isClosable:!0})},children:t})})}function ns(){const[s,t]=r.useState(!1),[l,o]=r.useState(!1),[n,a]=r.useState([]),[u,p]=r.useState(""),[i,h]=r.useState([]),[d,g]=r.useState(!1),[m,c]=r.useState(!1),[f,v]=r.useState(!1),S=r.useRef(null),w=Y();ve();const b=f?"\\":"/";r.useEffect(()=>{var j;Me().then(k=>{p(k.path??""),v(k.os==="win32")}),(j=C)==null||j.getSetting("twoWaySync").then(k=>{g(k??!1)})},[]);const F=async j=>{const{dir_path:k="",dir_contents:E=[],error:V=""}=await Fe(j??"");return V.includes("Operation not permitted")?(c(!0),O(),{isError:!0}):{dirList:E,dirPath:k}},y=async()=>{const{isError:j=!1,dirList:k=[]}=await F(u);j||(a(k),o(!0),h(u&&u.split(b).filter(E=>!!E)||[]))},O=()=>{o(!1),t(!1),h([])},$=async(j,k=!1,E=!1)=>{var x,I;if(k){const{path:M}=await Me();M&&await it(M,j)}await((x=C)==null?void 0:x.upsert({myWorkflowsDir:j}));const V=await((I=C)==null?void 0:I.getSetting("myWorkflowsDir"))??"";p(V),E&&c(!1),O()},K=async j=>{if(j){const{error:E=""}=await Fe(j);if(E.includes("Not a directory")){w({title:"The directory address you entered is invalid, please re-enter it.",status:"warning",duration:5e3,position:"top",isClosable:!0});return}}const k=j??`${f?"":b}${i.join(b)}`;$(k,!1,!!j)},X=async()=>{const{dirPath:j,dirList:k}=await F("");h(j.split(b).filter(E=>!!E)),a(k)},ne=async(j,k)=>{var I;let E="";j===-1&&k?E=`${f?"":b}${i.concat([k]).join(b)}`:E=`${f?"":b}${i.slice(0,j+1).join(b)}`;const{isError:V=!1,dirList:x=[]}=await F(E);V||(a(x),h(f?E.split(b):(I=E.slice(1))==null?void 0:I.split(b)))},ae=e.jsxs(_,{textAlign:"end",mb:4,children:[e.jsx(pe,{placeholder:"Please enter the absolute path directory address",ref:S,mt:2,mb:2}),e.jsx(W,{colorScheme:"teal",mr:3,size:"sm",onClick:()=>{var j,k;(j=S==null?void 0:S.current)!=null&&j.value&&K((k=S==null?void 0:S.current)==null?void 0:k.value)},children:"Save"})]}),ge=()=>{o(!0),t(!0)};return e.jsxs(e.Fragment,{children:[e.jsxs(_,{mb:4,children:[e.jsx(L,{mb:2,fontWeight:500,children:"My Workflows Save Directory"}),l?s?ae:e.jsxs(Ke,{spacing:2,alignItems:"start",children:[e.jsx(B,{spacing:"2px",direction:"row",wrap:"wrap",children:i.map((j,k)=>e.jsxs("span",{children:[k>0&&b,e.jsx(W,{colorScheme:"teal",variant:"link",minW:1,onClick:()=>{ne(k)},children:j},`${j}-${k}`)]},j))}),e.jsx(Ge,{columns:2,spacing:3,maxHeight:500,width:"100%",overflowY:"auto",children:n.map((j,k)=>e.jsx(W,{size:"sm",leftIcon:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.2rem",height:"1.2rem"},children:e.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})}),justifyContent:"start",onClick:()=>{ne(-1,j)},children:j},`${j}-${k}`))}),e.jsxs(_,{w:"100%",textAlign:"end",children:[e.jsx(W,{colorScheme:"teal",size:"sm",onClick:()=>{K()},children:"Save"}),e.jsx(W,{size:"sm",onClick:X,mr:2,ml:2,children:"Reset"}),e.jsx(W,{size:"sm",onClick:O,children:"Cancel"})]})]}):e.jsxs(Z,{children:[e.jsx(We,{overflowWrap:"anywhere",children:u}),e.jsx(R,{label:d?"Choose folder":"Enable two way sync to link local folder",children:e.jsx(P,{"aria-label":"Select folder",size:"sm",ml:2,isDisabled:!d,icon:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.4rem",height:"1.4srem"},children:e.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})}),onClick:y})}),e.jsx(R,{label:d?"Input absolute path":"Enable two way sync to link local folder",children:e.jsx(P,{isDisabled:!d,"aria-label":"Enter folder address",size:"sm",ml:2,icon:e.jsx(Kt,{size:19}),onClick:ge,variant:"ghost"})})]})]}),e.jsxs(re,{isOpen:m,onClose:()=>c(!1),size:"xl",children:[e.jsx(le,{}),e.jsxs(ce,{children:[e.jsx(de,{children:"Kind tips"}),e.jsx(ue,{}),e.jsx(he,{children:e.jsxs(_,{children:[navigator.userAgent.indexOf("Mac OS X")!==-1?e.jsxs(L,{fontWeight:500,children:["There is no permission to access the folder. You need to grant full disk access permission to the terminal that starts the ComfyUI program. For details, refer to the",e.jsx(W,{colorScheme:"teal",variant:"link",as:"a",ml:2,target:"_block",href:`https://stackoverflow.com/questions/58479686/permissionerror-errno-1-operation-not-permitted-after-macos - -catalina-update`,children:"Document"}),", or you can manually enter the absolute path of the folder in the input box below to save."]}):e.jsx(L,{fontWeight:500,children:"You do not have permission to access the folder. It is recommended that you manually enter the absolute path address of the required folder."}),ae]})})]})]})]})}function Ze({label:s,settingKey:t}){const[l,o]=r.useState(200),n=Y(),a=i=>{if(!i.length){o(0);return}o(parseInt(i))},u=async()=>{var i;l<0&&o(0),await((i=C)==null?void 0:i.upsert({[t]:Number(l)})),n({title:"Setting saved",status:"success",duration:3e3,isClosable:!0})},p=()=>{var i;(i=C)==null||i.getSetting(t).then(h=>{o(h)})};return r.useEffect(()=>{p()},[]),e.jsxs(B,{children:[e.jsx(L,{children:s}),e.jsx(Dt,{defaultValue:200,min:0,keepWithinRange:!0,placeholder:"Enter a number",maxWidth:"300px",value:l,onChange:i=>a(i),onBlur:()=>{u()},onKeyUp:i=>{i.key==="Enter"&&u()},children:e.jsx(Et,{})})]})}function as(){const[s,t]=r.useState(!1),l=Y(),o=()=>{var n;(n=C)==null||n.getSetting("autoSave").then(a=>{t(!!a)})};return r.useEffect(()=>{o()},[]),e.jsxs(B,{children:[e.jsx(q,{isChecked:s,onChange:async n=>{var a;await((a=C)==null?void 0:a.upsert({autoSave:n.target.checked})),o(),l({title:"Setting saved",status:"success",duration:3e3,isClosable:!0})},children:"Enable auto save workflow"}),s&&e.jsx(Ze,{label:"Auto save duration (auto save workflow every X seconds)",settingKey:"autoSaveDuration"})]})}function os(){const s=r.useRef(null),t=Y(),l=()=>{var o;(o=C)==null||o.getSetting("cloudHost").then(n=>{var a;(a=s.current)==null||a.setAttribute("value",n??"")})};return r.useEffect(()=>{l()},[]),e.jsxs(B,{children:[e.jsx(L,{children:"For enterprise paid user only. Hosting site of the shared workflow."}),e.jsxs(Z,{gap:2,alignItems:"center",children:[e.jsx(pe,{ref:s,onBlur:()=>{var o,n,a;console.log("onBlur",(o=s.current)==null?void 0:o.value),(a=C)==null||a.upsert({cloudHost:(n=s.current)==null?void 0:n.value}),l(),t({title:"Setting saved. Please refresh to see the changes.",status:"success",duration:4e3})}}),e.jsx(W,{size:"sm",onClick:()=>{var o,n,a;(n=s.current)==null||n.setAttribute("value",(o=C)==null?void 0:o.defaultSettings.cloudHost),(a=s.current)==null||a.blur()},children:"Reset"})]})]})}function is({onClose:s}){return e.jsx(e.Fragment,{children:e.jsxs(re,{isOpen:!0,onClose:s,size:"xl",children:[e.jsx(le,{}),e.jsxs(ce,{children:[e.jsx(de,{children:"Settings"}),e.jsx(ue,{}),e.jsx(he,{pb:14,children:e.jsx(z,{children:e.jsxs(Ke,{divider:e.jsx(rt,{borderColor:"gray.500"}),spacing:4,align:"stretch",w:"100%",children:[e.jsx(ns,{}),e.jsx(as,{}),e.jsx(es,{}),e.jsx(ss,{}),e.jsx(ts,{}),e.jsx(Ee,{settingKey:"overwriteCurWorkflowWhenDroppingFileToCanvas",text:"Overwrite current workflow when drag and drop workflow file to canvas"}),e.jsx(Ze,{label:`Maximum number of save change history to store. This does not include - versions that you created by "Create Version", which are always stored - and has no limit.`,settingKey:"maximumChangelogNumber"}),e.jsx(Ee,{settingKey:"hideCoverImage",text:"Hide thumbnail image in workflow list"}),e.jsx(os,{})]})})})]})]})})}const xe=16;function rs({}){const[s,t]=r.useState(!1),[l,o]=r.useState(!1),{colorMode:n,toggleColorMode:a}=ke();return e.jsxs(e.Fragment,{children:[e.jsxs(ee,{isLazy:!0,children:[e.jsx(se,{as:P,"aria-label":"Options",icon:e.jsx(Ut,{}),size:"sm",variant:"outline"}),e.jsxs(te,{children:[e.jsx(N,{onClick:()=>o(!0),icon:e.jsx(Yt,{size:16}),fontSize:16,children:"Settings"}),e.jsx(N,{onClick:()=>t(!0),icon:e.jsx(qt,{size:xe}),fontSize:16,children:"Manage Tags"}),e.jsxs(N,{onClick:a,icon:n==="light"?e.jsx(Zt,{size:xe}):e.jsx(Xt,{size:xe}),fontSize:16,children:[n==="light"?"Dark":"Light"," Mode"]})]})]}),s&&e.jsx(Qt,{onclose:()=>t(!1)}),l&&e.jsx(is,{onClose:()=>o(!1)})]})}function ls(s){const{multipleState:t,changeMultipleState:l,selectedKeys:o,isSelectedAll:n,batchOperationCallback:a}=s,u=async()=>{var h;const i=await((h=T)==null?void 0:h.batchQuery(o))??[];ct(i)},p=o.length===0;return e.jsx(z,{spacing:2,wrap:"wrap",mb:0,children:t?e.jsxs(e.Fragment,{children:[e.jsx(q,{isChecked:n,onChange:i=>{a("selectAll",i.target.checked)}}),e.jsx(R,{hasArrow:!0,label:"Download Zip",placement:"bottom",children:e.jsx(P,{isDisabled:p,"aria-label":"Batch export",size:"sm",icon:e.jsx(lt,{size:21}),onClick:u})}),e.jsx(R,{hasArrow:!0,label:"Batch deletion",children:e.jsx(Pe,{isDisabled:p,variant:"solid",promptMessage:`Are you sure you want to delete these ${o.length} checked workflows?`,tooltipText:"Delete selected",onDelete:async()=>{var i;await((i=T)==null?void 0:i.batchDeleteFlow(o)),a("batchDelete")}})}),o.length>0&&e.jsx(L,{fontWeight:600,children:`Selected ${o.length}`}),e.jsx(R,{hasArrow:!0,label:"Exit multi-select",children:e.jsx(P,{"aria-label":"Close multi-select operation",size:"sm",icon:e.jsx(Re,{}),onClick:()=>{l(!1)}})})]}):e.jsx(R,{hasArrow:!0,label:"Select multiple",placement:"bottom-start",children:e.jsx(P,{"aria-label":"Start multi-select operation",size:"sm",variant:"outline",icon:e.jsx(Ht,{size:21}),onClick:()=>{l(!0)}})})})}const Te=6;function cs({setSelectedTag:s,selectedTag:t}){const[l,o]=r.useState(!1),[n,a]=r.useState([]);return r.useEffect(()=>{var u;(u=je)==null||u.listAll().then(p=>{a(p)})},[]),e.jsxs(z,{spacing:2,wrap:"wrap",mb:0,children:[t!=null&&e.jsx(P,{"aria-label":"Close",size:"sm",icon:e.jsx(Re,{}),onClick:()=>{s(void 0)}}),n.slice(0,l?void 0:Te).map(u=>e.jsx(W,{variant:"solid",width:"auto",flexShrink:0,size:"sm",borderRadius:15,py:4,onClick:()=>{s(u.name)},isActive:t===u.name,children:u.name},u.name)),(n.length??0)>Te&&e.jsx(P,{"aria-label":"Show-all-tags",size:"sm",icon:l?e.jsx(Bt,{}):e.jsx(Se,{}),onClick:()=>o(!l)})]})}function Ye({parentFolderID:s,onlyImportFile:t=!1}){const{onRefreshFilesList:l}=r.useContext(H),[o,n]=r.useState("file"),a=r.useRef(null),u=d=>{var g;n(d),d==="folder"?a.current.setAttribute("webkitdirectory",""):a.current.removeAttribute("webkitdirectory"),(g=a.current)==null||g.click()},p=async d=>{var g;if(d.type==="image/png"){const m=await ut(d),c=m==null?void 0:m.workflow;if(c)return{json:c,name:d.name.replace(".png","")}}else if(d.type==="application/json"||(g=d.name)!=null&&g.endsWith(".json"))return await new Promise((m,c)=>{const f=new FileReader;f.onload=v=>{var S;try{const w=(S=v.target)==null?void 0:S.result;typeof w=="string"?m({json:w,name:d.name.replace(".json","")}):c(new Error("File content is not a string"))}catch(w){c(w)}},f.onerror=c,f.readAsText(d)});return null},i=async d=>{var m,c;const g=[d];for(;g.length>0;){const f=g.shift();if(f&&!f.isFile){const v=await((m=G)==null?void 0:m.create({name:f.name,parentFolderID:f.parentFolderID}));if(f.children&&f.children.length){const S=[];f.children.forEach(w=>{w.isFile&&w.file?S.push(w.file):(w.parentFolderID=v==null?void 0:v.id,g.push(w))}),S.length&&await((c=T)==null?void 0:c.batchCreateFlows(S,void 0,v==null?void 0:v.id))}}}l==null||l()},h=async d=>{var m;const g=d.target.files;if(g)if(o==="folder"){const c={name:g[0].webkitRelativePath.split("/")[0],isFile:!1,children:[]};for(const f of g)if(f.name!==".DS_Store"){const v=f.webkitRelativePath.split("/");let S=c.children??[];for(let w=1;wy.name===b);if(!F){if(F={name:b,isFile:w===v.length-1,children:w===v.length-1?void 0:[]},F.isFile){const y=await p(f);y&&(F.file=y)}S.push(F)}F&&!F.isFile&&(S=F.children)}}i(c)}else{const c=[];for(const f of g){const v=await p(f);v&&c.push(v)}c.length&&(await((m=T)==null?void 0:m.batchCreateFlows(c,void 0,s)),l&&l())}};return e.jsxs(e.Fragment,{children:[t?e.jsx(N,{onClick:d=>{d.stopPropagation(),u("file")},icon:e.jsx(De,{size:19}),children:"Import workflows"}):e.jsxs(ee,{closeOnSelect:!0,children:[e.jsx(se,{as:W,leftIcon:e.jsx(De,{size:18}),variant:"outline",iconSpacing:1,size:"sm",colorScheme:"teal",children:"Import"}),e.jsx(te,{children:dt.map((d,g)=>e.jsx(N,{onClick:()=>{u(d.type)},iconSpacing:2,icon:d.type==="folder"?e.jsx(_e,{size:18}):e.jsx(Gt,{size:18}),children:d.title},g))})]}),e.jsx("input",{style:{display:"none"},ref:a,type:"file",accept:".json,image/png",multiple:!0,onChange:h,onClick:d=>{d.stopPropagation()}})]})}function ds({folder:s,onclose:t}){const[l,o]=r.useState(s.name),[n,a]=r.useState(""),{onRefreshFilesList:u}=r.useContext(H),p=h=>{o(h.target.value),n&&a("")},i=async()=>{var g,m;const h=l.trim();if(o(h),h===s.name)return t();await((g=G)==null?void 0:g.generateUniqueName(h,s.parentFolderID??""))!==h?a("The name is duplicated, please modify it and submit again."):(await((m=G)==null?void 0:m.update(s.id,{name:h})),u&&u(),t())};return e.jsxs(re,{isOpen:!0,onClose:t,children:[e.jsx(le,{}),e.jsxs(ce,{children:[e.jsx(de,{children:"Edit folder name"}),e.jsx(ue,{}),e.jsx(he,{children:e.jsxs(ht,{isInvalid:!!n,children:[e.jsx(pt,{children:"Folder name"}),e.jsx(pe,{value:l,onChange:p,autoFocus:!0,onKeyUp:h=>{h.code==="Enter"&&!n&&l&&i()}}),n&&e.jsx(gt,{children:n})]})}),e.jsxs(Qe,{children:[e.jsx(W,{colorScheme:"teal",mr:3,onClick:i,isDisabled:!l||!!n,children:"Save"}),e.jsx(W,{onClick:t,children:"Cancel"})]})]})]})}function us({menuPosition:s,isopen:t,folder:l,onClose:o}){const[n,a]=r.useState(!1),{onRefreshFilesList:u}=r.useContext(H),{showDialog:p}=ve(),i=async m=>{var c;m.stopPropagation(),await((c=G)==null?void 0:c.create({name:"New Folder",parentFolderID:l.id})),u&&u()},h=async m=>{var c;m.stopPropagation(),await((c=T)==null?void 0:c.createFlow({json:JSON.stringify(ft),parentFolderID:l.id})),u&&u()},d=async m=>{m.stopPropagation();const c=await xt(l.id);p(`Do you want to delete the ${c} files inside the folder too?`,[{label:"Delete all files",colorScheme:"red",onClick:()=>{g(jt.DELETE)}}])},g=async m=>{var c;await((c=G)==null?void 0:c.deleteFolder(l.id,m)),o(),u&&u()};return e.jsxs(e.Fragment,{children:[e.jsx(_,{position:"absolute",top:s.y,left:s.x,children:e.jsx(ee,{isOpen:t,onClose:o,isLazy:!0,lazyBehavior:"keepMounted",children:e.jsxs(te,{children:[e.jsx(N,{icon:e.jsx(mt,{size:19}),onClick:m=>{m.preventDefault(),m.stopPropagation(),a(!0)},children:"Rename"}),e.jsx(N,{icon:e.jsx(Ne,{size:19}),onClick:d,children:"Delete"}),e.jsx(N,{onClick:i,icon:e.jsx(Ue,{size:19}),children:"New folder"}),e.jsx(N,{onClick:h,icon:e.jsx(Be,{size:19}),children:"New file"}),e.jsx(Ye,{parentFolderID:l.id,onlyImportFile:!0})]})})}),n&&e.jsx(ds,{folder:l,onclose:()=>a(!1)})]})}const Oe=r.memo(function({folder:t}){const[l,o]=r.useState(!1),[n,a]=r.useState(t.isCollapse??!0),[u,p]=r.useState([]),[i,h]=r.useState({x:0,y:0}),[d,g]=r.useState(!1),{colorMode:m}=ke(),{draggingFile:c,setDraggingFile:f,refreshFolderStamp:v,onRefreshFilesList:S}=r.useContext(H),w=m==="light"?{backgroundColor:"#E2E8F0"}:{backgroundColor:"#4A5568"};r.useEffect(()=>{var y;n||(y=T)==null||y.listFolderContent(t.id,window.localStorage.getItem(ye)).then(O=>{p(O)})},[t.id,v,n]);const b=y=>{y.preventDefault(),h({x:y.clientX,y:y.clientY}),g(!0)},F=async y=>{var O,$;if(y.preventDefault(),y.stopPropagation(),!c)return o(!1);if(U(c)){if(c.id===t.id)return o(!1);await((O=G)==null?void 0:O.update(c.id,{parentFolderID:t.id}))}else U(c)||await(($=T)==null?void 0:$.updateFolder(c.id,{parentFolderID:t.id}));await(S==null?void 0:S()),o(!1)};return r.useEffect(()=>{var y;!!t.isCollapse!==n&&((y=G)==null||y.update(t.id,{isCollapse:n}))},[n]),r.useEffect(()=>{var X;const y=(X=T)==null?void 0:X.curWorkflow,O=(y==null?void 0:y.parentFolderID)+"/",$=t.id+"/";O.startsWith($)&&a(!1)},[]),e.jsxs(B,{children:[e.jsxs(z,{w:"100%",as:"button",py:1,onClick:()=>{a(!n)},onContextMenu:b,draggable:"true",onDragOver:y=>{y.preventDefault(),y.stopPropagation(),o(!0)},onDragLeave:y=>{y.preventDefault(),y.stopPropagation(),o(!1)},onDragStart:()=>f==null?void 0:f(t),onDrop:F,_hover:w,style:l||d?w:void 0,className:"droppable",children:[e.jsxs(z,{gap:1,children:[n?e.jsx(Tt,{size:20}):e.jsx(Se,{size:20}),e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.2rem",height:"1.2rem"},children:e.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})})]}),e.jsx(L,{children:t.name})]}),e.jsx(us,{isopen:d,menuPosition:i,onClose:()=>g(!1),folder:t}),!n&&e.jsx(B,{ml:4,gap:0,children:e.jsx(Xe,{items:u})})]})});function hs({workflow:s}){const t=r.useRef(null),l=Y(),{onDuplicateWorkflow:o}=r.useContext(Ce),[n,a]=r.useState(s.saveLock??!1),u=async()=>{var h;const i=!n;a(i),await((h=T)==null?void 0:h.updateMetaInfo(s.id,{saveLock:i})),l({title:`${i?"Locked":"Unlocked"} successfully`,status:"success",duration:2e3})},p=async i=>{const h=i.target.files;if(!h)return;const d=new FormData;Array.from(h).forEach((g,m)=>{d.append(`images[${m}]`,g,g.name)}),d.append("subfolder","workspace_manager"),await vt("/workspace/images/save",{method:"POST",body:d}),Array.from(h).forEach(async g=>{var c,f;const m=`workspace_manager/${g.name}`;(c=kt)==null||c.create({workflowID:s.id,localPath:m}),(f=T)==null||f.updateMetaInfo(s.id,{coverMediaPath:m})})};return e.jsxs(e.Fragment,{children:[e.jsxs(ee,{isLazy:!0,closeOnSelect:!1,placement:"right",gutter:0,children:[e.jsx(se,{border:0,as:P,"aria-label":"Options",icon:e.jsx($t,{size:20}),size:"sm",variant:"outline"}),e.jsxs(te,{zIndex:101,children:[e.jsx(N,{icon:e.jsx(At,{}),onClick:()=>o&&o(s.id),children:"Duplicate"}),e.jsx(N,{icon:e.jsx(yt,{size:20}),onClick:()=>wt(s.id),children:"Open in new tab"}),e.jsx(R,{hasArrow:!0,label:n?"Unlock workflow, allow modifying":"Lock workflow, prevent modifying",placement:"bottom",children:e.jsx(N,{icon:n?e.jsx($e,{}):e.jsx(Vt,{}),onClick:u,children:n?"Unlock":"Lock"})}),e.jsx(N,{icon:e.jsx(Jt,{}),onClick:()=>{var i;(i=t.current)==null||i.click()},children:"Upload Thumbnail Image"})]})]}),e.jsx("input",{style:{display:"none"},ref:t,type:"file",accept:".json,image/png",multiple:!0,onChange:p,onClick:i=>{i.stopPropagation()}})]})}function ps({workflow:s}){const{onDeleteFlow:t}=r.useContext(H);return e.jsxs(Z,{justifyContent:"flex-end",children:[e.jsx(Pe,{promptMessage:"Are you sure you want to delete this workflow?",onDelete:()=>{t&&t(s.id)}}),e.jsx(hs,{workflow:s})]})}const ze=r.memo(function({workflow:t}){var v,S,w,b;const{colorMode:l}=ke(),{setDraggingFile:o,isMultiSelecting:n,onMultiSelectFlow:a,multiSelectedFlowsID:u}=r.useContext(H),p=u&&u.length>0&&u.includes(t.id),{curFlowID:i,loadWorkflowID:h}=r.useContext(Ce),d=i===t.id,g=l==="light"?"gray.200":"#4A5568",[m,c]=r.useState(!1),f=e.jsx(_,{flexShrink:1,flexGrow:1,backgroundColor:d?"teal.200":void 0,color:d&&!n?"#333":void 0,draggable:!n,onDragStart:()=>o==null?void 0:o(t),borderRadius:6,px:1,py:"5px",onClick:()=>{!n&&h(t.id)},_hover:{bg:g},children:e.jsxs(z,{flexGrow:1,children:[!((S=(v=C)==null?void 0:v.settings)!=null&&S.hideCoverImage)&&(((w=t.coverMediaPath)==null?void 0:w.length)||((b=t.latestImage)==null?void 0:b.length))&&e.jsx(Ot,{mediaLocalPath:t.coverMediaPath??t.latestImage??"",size:60,hideBrokenImage:!0,isPreview:!0}),e.jsx(_,{textAlign:"left",gap:0,justifyContent:"space-between",flexGrow:1,children:e.jsxs(Z,{alignItems:"center",children:[e.jsx(L,{fontWeight:"500",noOfLines:1,wordBreak:"break-all",children:t.name??"untitled"}),t.saveLock&&e.jsx($e,{size:18,style:{display:"inline-block"}})]})})]})});return e.jsx(z,{w:"100%",justify:"space-between",borderBottom:"1px solid",borderColor:l=="dark"?"gray.700":"gray.200",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:n?e.jsx(q,{isChecked:p,spacing:4,onChange:F=>{a&&a(t.id,F.target.checked)},children:f}):e.jsxs(e.Fragment,{children:[f,e.jsx(_,{width:"fit-content",children:m?e.jsx(ps,{workflow:t}):e.jsx(L,{color:"GrayText",fontSize:"sm",children:St(t.updateTime,!1,!1,"/")})})]})})});function Xe({items:s}){var m;const[t,l]=r.useState(!1),o=s.filter(U),n=s.filter(c=>!U(c)),a=(m=n[0])==null?void 0:m.parentFolderID,[u,p]=r.useState(!1),{onRefreshFilesList:i,draggingFile:h,refreshFolderStamp:d}=r.useContext(H),g=async c=>{var f,v;if(c.preventDefault(),c.stopPropagation(),!h)return p(!1);if(U(h)){if(h.id===a)return p(!1);await((f=G)==null?void 0:f.update(h.id,{parentFolderID:a}))}else await((v=T)==null?void 0:v.updateFolder(h.id,{parentFolderID:a}));await(i==null?void 0:i()),p(!1)};return r.useEffect(()=>{var c;(c=C)==null||c.getSetting("foldersOnTop").then(f=>{l(f??!1)})},[d]),e.jsxs(e.Fragment,{children:[t&&o.map(c=>e.jsx(Oe,{folder:c},c.id)),e.jsx(_,{border:u?"2px dashed #718096":"2px dashed transparent",onDragOver:c=>{c.preventDefault(),c.stopPropagation(),p(!0)},onDragLeave:c=>{c.preventDefault(),c.stopPropagation(),p(!1)},onDrop:g,className:"droppable",children:t?n.map(c=>e.jsx(ze,{workflow:c},c.id)):s.map(c=>U(c)?e.jsx(Oe,{folder:c},c.id):e.jsx(ze,{workflow:c},c.id))})]})}function ks({onClose:s,onClickNewFlow:t}){const[l,o]=r.useState([]),n=r.useRef([]),{loadWorkflowID:a,curFlowID:u}=r.useContext(Ce),[p,i]=r.useState(),[h,d]=r.useState(!1),[g,m]=r.useState([]),[c,f]=r.useState(0),[v,S]=r.useState(""),w=zt(v,400),b=r.useRef(null),[F,y]=r.useState(null),O=r.useRef(window.localStorage.getItem(ye)??J.RECENTLY_MODIFIED),$=!!p||!!w.length,K=async()=>{var I,M;const x=await((I=T)==null?void 0:I.listFolderContent())??[];o(fe(x,O.current)),f(Date.now()),n.current=await((M=T)==null?void 0:M.listAll())??[]},X=()=>{const x=n.current.filter(I=>{var Ie;let M=!0,D=!0;return p&&(M=!!((Ie=I.tags)!=null&&Ie.includes(p))),w&&(D=!!I.name.toLocaleLowerCase().includes(w.toLocaleLowerCase())),M&&D});o(fe(x,O.current))},ne=x=>{o(fe(l,x)),O.current=x,window.localStorage.setItem(ye,x),!$&&f(Date.now())};r.useEffect(()=>{$?X():K()},[w,p]);const ae=r.useCallback(async x=>{var I,M,D;await((I=T)==null?void 0:I.deleteFlow(x)),((D=(M=T)==null?void 0:M.curWorkflow)==null?void 0:D.id)===x&&await(a==null?void 0:a(null)),await K()},[p,w]);r.useEffect(()=>{const x=async I=>{var M;if(b.current){const D=await((M=T)==null?void 0:M.get(b.current));D&&D.json&&Mt(D.json,[I.canvasX,I.canvasY])}};return oe.canvasEl.addEventListener("drop",x),oe.canvasEl.addEventListener("click",s),()=>{oe.canvasEl.removeEventListener("drop",x),oe.canvasEl.removeEventListener("click",s)}},[]);const ge=r.useCallback((x,I)=>{m(M=>{const D=[...M];return I?D.push(x):D.splice(D.indexOf(x),1),D})},[]),j=(x,I)=>{var M;switch(x){case"batchDelete":u&&((M=T)==null||M.get(u).then(D=>{D||a==null||a(null)})),K(),d(!1),m([]);return;case"selectAll":m(I?n.current.map(D=>D.id):[]);return}},k=x=>{y(x),U(x)||(b.current=x.id)},E=x=>{S(x)},V=450;return e.jsx(H.Provider,{value:{onRefreshFilesList:K,draggingFile:F??void 0,setDraggingFile:k,isMultiSelecting:h,onMultiSelectFlow:ge,multiSelectedFlowsID:g,onDeleteFlow:ae,refreshFolderStamp:c,setRefreshFolderStamp:f},children:e.jsx(_,{style:{width:V},children:e.jsxs(Ct,{width:V,height:"100vh",pl:2,pr:2,pt:4,gap:4,position:"absolute",top:0,left:0,shadow:"xl",zIndex:bt,children:[e.jsxs(Z,{alignItems:"center",justifyContent:"space-between",children:[e.jsxs(z,{gap:4,children:[e.jsx(z,{gap:2,children:e.jsx(L,{fontSize:19,fontWeight:600,children:"🦄Workspace"})}),e.jsx(Ye,{}),e.jsx(R,{label:"Open workspace save directory",children:e.jsx(P,{"aria-label":"Open workspace save directory",size:"sm",icon:e.jsx(_e,{}),variant:"outline",colorScheme:"teal",onClick:()=>It()})}),e.jsx(R,{label:"New workflow",children:e.jsx(P,{"aria-label":"New workflow",size:"sm",icon:e.jsx(Be,{}),variant:"outline",colorScheme:"teal",onClick:t})})]}),e.jsx(z,{alignItems:"center",children:e.jsx(rs,{})})]}),e.jsxs(Z,{direction:"column",h:"calc(100% - 64px)",children:[e.jsx(cs,{selectedTag:p,setSelectedTag:i}),e.jsxs(z,{mb:2,mt:2,p:0,justifyContent:"space-between",children:[e.jsxs(z,{children:[e.jsx(ls,{multipleState:h,changeMultipleState:x=>{d(x),!x&&m([])},selectedKeys:g,isSelectedAll:g.length===n.current.length,batchOperationCallback:j}),!h&&e.jsx(R,{hasArrow:!0,label:"New folder",placement:"bottom-start",children:e.jsx(P,{size:"sm",variant:"outline",icon:e.jsx(Ue,{size:21}),onClick:async()=>{var x;await((x=G)==null?void 0:x.create({name:"New Folder"})),K()},"aria-label":"new folder button"})})]}),e.jsxs(ee,{closeOnSelect:!0,children:[e.jsx(se,{as:W,variant:"ghost",size:"xs",pr:0,rightIcon:e.jsx(Se,{size:"16"}),children:e.jsxs(z,{children:[e.jsx(L,{children:"Sort by:"}),e.jsx(L,{display:"inline-block",children:O.current})]})}),e.jsx(te,{children:e.jsx(Ve,{value:O.current,type:"radio",onChange:x=>ne(x),children:[J.RECENTLY_MODIFIED,J.OLDEST_MODIFIED,J.AZ,J.ZA].map((x,I)=>e.jsx(be,{value:x,children:x},I))})})]})]}),e.jsx(Lt,{searchValue:v,onUpdateSearchValue:E}),e.jsx(Z,{overflowY:"auto",overflowX:"hidden",direction:"column",style:{overflowY:"scroll",scrollbarWidth:"none",msOverflowStyle:"none"},children:e.jsx(Xe,{items:l})})]})]})})})}export{ks as default}; diff --git a/dist/workspace_web/RecentFilesDrawer-nkyCGrYH.js b/dist/workspace_web/RecentFilesDrawer-nkyCGrYH.js new file mode 100644 index 0000000..c98975b --- /dev/null +++ b/dist/workspace_web/RecentFilesDrawer-nkyCGrYH.js @@ -0,0 +1,5 @@ +import{f as Q,E as qe,j as e,Y as Je,e as ie,g as we,r as i,M as re,N as le,O as ce,Q as de,R as ue,S as he,V as ve,h as W,Z as ke,T as Qe}from"./input.js";import{m as Le,u as Ae,a as et,b as tt,c as st,S as nt,M as at,d as A,H as z,T as We,I as P,t as je,e as Ne,f as Y,E as me,g as B,h as L,i as R,j as pe,k as C,R as G,l as ot,n as Me,B as _,F as Z,o as Fe,p as it,q as rt,r as ee,s as te,v as N,w as lt,D as Pe,x as T,y as Re,z as ct,A as Se,C as dt,G as _e,J as K,K as ut,L as ht,N as pt,O as Be,P as gt,Q as mt,U as ft,V as U,W as ye,X as Ce,Y as xt,Z as jt,_ as $e,$ as yt,a0 as wt,a1 as vt,a2 as J,a3 as oe,a4 as kt,a5 as St,a6 as Ct,a7 as fe,a8 as bt}from"./App-Pi18TWng.js";import{G as It,C as q}from"./chunk-JARCRF6W-sDjzfEGl.js";import{V as He}from"./chunk-NTCQBYKE-6cj7iDLd.js";import{N as Mt,a as Ft,g as Dt,I as Et,M as Tt,u as Ot,S as zt}from"./MediaPreview-AxH1rOBH.js";import{I as Lt}from"./IconCopy-Ge1LD4_a.js";import"./chunk-7D6N5TE5-ZfhYDM9i.js";import"./IconSearch-xcUfhAk-.js";var Ke=Q(function(t,r){const{columns:l,spacingX:o,spacingY:s,spacing:d,minChildWidth:p,...n}=t,h=qe(),u=p?Wt(p,h):Nt(l);return e.jsx(It,{ref:r,gap:d,columnGap:o,rowGap:s,templateColumns:u,...n})});Ke.displayName="SimpleGrid";function At(a){return typeof a=="number"?`${a}px`:a}function Wt(a,t){return Le(a,r=>{const l=Je("sizes",r,At(r))(t);return r===null?null:`repeat(auto-fit, minmax(${l}, 1fr))`})}function Nt(a){return Le(a,t=>t===null?null:`repeat(${t}, minmax(0, 1fr))`)}var Ge=Q((a,t)=>{const{title:r,children:l,className:o,...s}=a,d=ie("chakra-menu__group__title",o),p=Ae();return e.jsxs("div",{ref:t,className:"chakra-menu__group",role:"group",children:[r&&e.jsx(we.p,{className:d,...s,__css:p.groupTitle,children:r}),l]})});Ge.displayName="MenuGroup";var Ve=a=>{const{className:t,title:r,...l}=a,o=et(l);return e.jsx(Ge,{title:r,className:ie("chakra-menu__option-group",t),...o})};Ve.displayName="MenuOptionGroup";var Pt=Q((a,t)=>{const r=Ae();return e.jsx(we.button,{ref:t,...a,__css:{display:"inline-flex",appearance:"none",alignItems:"center",outline:0,...r.button}})}),se=Q((a,t)=>{const{children:r,as:l,...o}=a,s=tt(o,t),d=l||Pt;return e.jsx(d,{...s,className:ie("chakra-menu__menu-button",a.className),children:e.jsx(we.span,{__css:{pointerEvents:"none",flex:"1 1 auto",minW:0},children:a.children})})});se.displayName="MenuButton";var Rt=a=>e.jsx("svg",{viewBox:"0 0 14 14",width:"1em",height:"1em",...a,children:e.jsx("polygon",{fill:"currentColor",points:"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039"})}),be=Q((a,t)=>{const{icon:r,iconSpacing:l="0.75rem",...o}=a,s=st(o,t);return e.jsxs(nt,{...s,className:ie("chakra-menu__menuitem-option",o.className),children:[r!==null&&e.jsx(at,{fontSize:"0.8em",marginEnd:l,opacity:a.isChecked?1:0,children:r||e.jsx(Rt,{})}),e.jsx("span",{style:{flex:1},children:s.children})]})});be.id="MenuItemOption";be.displayName="MenuItemOption";var _t=A("chevron-up","IconChevronUp",[["path",{d:"M6 15l6 -6l6 6",key:"svg-0"}]]),Bt=A("dots-vertical","IconDotsVertical",[["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),$t=A("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]),De=A("file-import","IconFileImport",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M5 13v-8a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-5.5m-9.5 -2h7m-3 -3l3 3l-3 3",key:"svg-1"}]]),Ht=A("file","IconFile",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}]]),Ue=A("folder-plus","IconFolderPlus",[["path",{d:"M12 19h-7a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2h4l3 3h7a2 2 0 0 1 2 2v3.5",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}]]),Kt=A("list-check","IconListCheck",[["path",{d:"M3.5 5.5l1.5 1.5l2.5 -2.5",key:"svg-0"}],["path",{d:"M3.5 11.5l1.5 1.5l2.5 -2.5",key:"svg-1"}],["path",{d:"M3.5 17.5l1.5 1.5l2.5 -2.5",key:"svg-2"}],["path",{d:"M11 6l9 0",key:"svg-3"}],["path",{d:"M11 12l9 0",key:"svg-4"}],["path",{d:"M11 18l9 0",key:"svg-5"}]]),Gt=A("lock-open","IconLockOpen",[["path",{d:"M5 11m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M12 16m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M8 11v-5a4 4 0 0 1 8 0",key:"svg-2"}]]),Vt=A("menu-2","IconMenu2",[["path",{d:"M4 6l16 0",key:"svg-0"}],["path",{d:"M4 12l16 0",key:"svg-1"}],["path",{d:"M4 18l16 0",key:"svg-2"}]]),Ut=A("moon","IconMoon",[["path",{d:"M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z",key:"svg-0"}]]),Zt=A("pencil","IconPencil",[["path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4",key:"svg-0"}],["path",{d:"M13.5 6.5l4 4",key:"svg-1"}]]),Yt=A("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]),Xt=A("sun","IconSun",[["path",{d:"M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0",key:"svg-0"}],["path",{d:"M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7",key:"svg-1"}]]),qt=A("tag","IconTag",[["path",{d:"M7.5 7.5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592 -5.592a2.41 2.41 0 0 0 0 -3.408l-7.71 -7.71a2 2 0 0 0 -1.414 -.586h-5.172a3 3 0 0 0 -3 3z",key:"svg-1"}]]),Jt=A("upload","IconUpload",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 9l5 -5l5 5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);function Qt({onclose:a}){const[t,r]=i.useState([]),l=async()=>{var s;const o=await((s=je)==null?void 0:s.listAll());r(o??[])};return i.useEffect(()=>{l()},[]),e.jsxs(re,{isOpen:!0,onClose:a,children:[e.jsx(le,{}),e.jsxs(ce,{children:[e.jsx(de,{children:"My Tags"}),e.jsx(ue,{}),e.jsx(he,{children:t.map(o=>e.jsxs(z,{children:[e.jsx(We,{children:o.name}),e.jsx(P,{onClick:async()=>{var s;await((s=je)==null?void 0:s.delete(o.name)),l()},"aria-label":"delete-tag",colorScheme:"red",variant:"ghost",icon:e.jsx(Ne,{})})]}))})]})]})}function es(){const a=Y(),t=i.useRef([{title:"Save current workflow",key:me.SAVE},{title:"Save as current workflow",key:me.SAVE_AS},{title:"Open spotlight search",key:me.openSpotlightSearch}]),[r,l]=i.useState({save:"",saveAs:"",openSpotlightSearch:""}),[o,s]=i.useState(),d=async(n,h)=>{var g;n.preventDefault();let u="";if(n.ctrlKey&&(u+="Control+"),n.metaKey&&(u+="Command+"),n.shiftKey&&(u+="Shift+"),n.altKey&&(u+="Alt+"),u.length>0&&!["Control","Shift","Alt","Meta"].includes(n.key)){u+=n.key.toUpperCase();const m={...r};delete m[h],Object.values(m).includes(u)?a({title:"Shortcut key conflict",description:`The shortcut key 「${u}」 is already used, please + modify it.`,status:"info",duration:3e3,position:"top",isClosable:!1}):(await((g=C)==null?void 0:g.upsert({shortcuts:{...r,[h]:u}})),p())}},p=()=>{var n;(n=C)==null||n.getSetting("shortcuts").then(h=>{var g;const u=h??((g=C)==null?void 0:g.defaultSettings.shortcuts);l({...r,...u})})};return i.useEffect(()=>{p()},[]),e.jsxs(B,{children:[e.jsx(L,{children:"Keyboard Shortcut"}),t.current.map(n=>e.jsxs(z,{children:[e.jsx(L,{fontSize:"sm",w:170,children:n.title}),e.jsx(R,{label:"Press shortcut key combinations to setup",placement:"bottom",hasArrow:!0,isOpen:o===n.key,children:e.jsx(pe,{value:r[n.key],onKeyDown:h=>{d(h,n.key)},onFocus:()=>{s(n.key)},onBlur:()=>{s(void 0)},placeholder:"Press a key combination",readOnly:!0,width:"auto",flex:1})})]},n.key))]})}function ts(){const{setRefreshFolderStamp:a}=i.useContext(G),[t,r]=i.useState(!1),l=()=>{var s;(s=C)==null||s.getSetting("foldersOnTop").then(d=>{r(!!d)})},o=s=>{var p;const d=s.target.checked;(p=C)==null||p.upsert({foldersOnTop:d}).then(()=>{l(),a(Date.now())})};return i.useEffect(()=>{l()},[]),e.jsx(B,{children:e.jsx(q,{isChecked:t,onChange:o,children:"Folders always on top"})})}function ss(){const[a,t]=i.useState(!1),[r,l]=i.useState(""),{showDialog:o}=ve(),s=()=>{var p,n;(p=C)==null||p.getSetting("myWorkflowsDir").then(h=>{l(h??"undefined")}),(n=C)==null||n.getSetting("twoWaySync").then(h=>{t(h??!1)})};i.useEffect(()=>{s()},[]);const d=async p=>{var h,u;if(!p.target.checked){await((h=C)==null?void 0:h.upsert({twoWaySync:p.target.checked})),s();return}const n=await((u=C)==null?void 0:u.getSetting("myWorkflowsDir"));o(e.jsx(ot,{myWorkflowsDir:n??"undefined"}),[{label:"I have downloaded all my workflows and ready to enable",onClick:async()=>{var g;await((g=C)==null?void 0:g.upsert({twoWaySync:!0})),s()},colorScheme:"red"}])};return e.jsxs(B,{children:[e.jsx(L,{children:"Only for legacy two way sync users to get back their data. Do not disable two way sync if you have already enabled it. It may cause some unexpected issues."}),e.jsx(q,{isChecked:a,onChange:d,children:"Enable two way sync"})]})}function Ee({settingKey:a,text:t,defaultChecked:r=!1}){const[l,o]=i.useState(r),s=Y(),d=()=>{var p;(p=C)==null||p.getSetting(a).then(n=>{o(!!n)})};return i.useEffect(()=>{d()},[]),e.jsx(B,{children:e.jsx(q,{isChecked:l,onChange:async p=>{var n;await((n=C)==null?void 0:n.upsert({[a]:p.target.checked})),d(),s({title:"Setting saved. Please refresh to see the changes.",status:"success",duration:3e3,isClosable:!0})},children:t})})}function ns(){const[a,t]=i.useState(!1),[r,l]=i.useState(!1),[o,s]=i.useState([]),[d,p]=i.useState(""),[n,h]=i.useState([]),[u,g]=i.useState(!1),[m,c]=i.useState(!1),[f,v]=i.useState(!1),S=i.useRef(null),w=Y();ve();const b=f?"\\":"/";i.useEffect(()=>{var j;Me().then(k=>{p(k.path??""),v(k.os==="win32")}),(j=C)==null||j.getSetting("twoWaySync").then(k=>{g(k??!1)})},[]);const F=async j=>{const{dir_path:k="",dir_contents:E=[],error:V=""}=await Fe(j??"");return V.includes("Operation not permitted")?(c(!0),O(),{isError:!0}):{dirList:E,dirPath:k}},y=async()=>{const{isError:j=!1,dirList:k=[]}=await F(d);j||(s(k),l(!0),h(d&&d.split(b).filter(E=>!!E)||[]))},O=()=>{l(!1),t(!1),h([])},$=async(j,k=!1,E=!1)=>{var x,I;if(k){const{path:M}=await Me();M&&await it(M,j)}await((x=C)==null?void 0:x.upsert({myWorkflowsDir:j}));const V=await((I=C)==null?void 0:I.getSetting("myWorkflowsDir"))??"";p(V),E&&c(!1),O()},H=async j=>{if(j){const{error:E=""}=await Fe(j);if(E.includes("Not a directory")){w({title:"The directory address you entered is invalid, please re-enter it.",status:"warning",duration:5e3,position:"top",isClosable:!0});return}}const k=j??`${f?"":b}${n.join(b)}`;$(k,!1,!!j)},X=async()=>{const{dirPath:j,dirList:k}=await F("");h(j.split(b).filter(E=>!!E)),s(k)},ne=async(j,k)=>{var I;let E="";j===-1&&k?E=`${f?"":b}${n.concat([k]).join(b)}`:E=`${f?"":b}${n.slice(0,j+1).join(b)}`;const{isError:V=!1,dirList:x=[]}=await F(E);V||(s(x),h(f?E.split(b):(I=E.slice(1))==null?void 0:I.split(b)))},ae=e.jsxs(_,{textAlign:"end",mb:4,children:[e.jsx(pe,{placeholder:"Please enter the absolute path directory address",ref:S,mt:2,mb:2}),e.jsx(W,{colorScheme:"teal",mr:3,size:"sm",onClick:()=>{var j,k;(j=S==null?void 0:S.current)!=null&&j.value&&H((k=S==null?void 0:S.current)==null?void 0:k.value)},children:"Save"})]}),ge=()=>{l(!0),t(!0)};return e.jsxs(e.Fragment,{children:[e.jsxs(_,{mb:4,children:[e.jsx(L,{mb:2,fontWeight:500,children:"My Workflows Save Directory"}),r?a?ae:e.jsxs(He,{spacing:2,alignItems:"start",children:[e.jsx(B,{spacing:"2px",direction:"row",wrap:"wrap",children:n.map((j,k)=>e.jsxs("span",{children:[k>0&&b,e.jsx(W,{colorScheme:"teal",variant:"link",minW:1,onClick:()=>{ne(k)},children:j},`${j}-${k}`)]},j))}),e.jsx(Ke,{columns:2,spacing:3,maxHeight:500,width:"100%",overflowY:"auto",children:o.map((j,k)=>e.jsx(W,{size:"sm",leftIcon:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.2rem",height:"1.2rem"},children:e.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})}),justifyContent:"start",onClick:()=>{ne(-1,j)},children:j},`${j}-${k}`))}),e.jsxs(_,{w:"100%",textAlign:"end",children:[e.jsx(W,{colorScheme:"teal",size:"sm",onClick:()=>{H()},children:"Save"}),e.jsx(W,{size:"sm",onClick:X,mr:2,ml:2,children:"Reset"}),e.jsx(W,{size:"sm",onClick:O,children:"Cancel"})]})]}):e.jsxs(Z,{children:[e.jsx(We,{overflowWrap:"anywhere",children:d}),e.jsx(R,{label:u?"Choose folder":"Enable two way sync to link local folder",children:e.jsx(P,{"aria-label":"Select folder",size:"sm",ml:2,isDisabled:!u,icon:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.4rem",height:"1.4srem"},children:e.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})}),onClick:y})}),e.jsx(R,{label:u?"Input absolute path":"Enable two way sync to link local folder",children:e.jsx(P,{isDisabled:!u,"aria-label":"Enter folder address",size:"sm",ml:2,icon:e.jsx($t,{size:19}),onClick:ge,variant:"ghost"})})]})]}),e.jsxs(re,{isOpen:m,onClose:()=>c(!1),size:"xl",children:[e.jsx(le,{}),e.jsxs(ce,{children:[e.jsx(de,{children:"Kind tips"}),e.jsx(ue,{}),e.jsx(he,{children:e.jsxs(_,{children:[navigator.userAgent.indexOf("Mac OS X")!==-1?e.jsxs(L,{fontWeight:500,children:["There is no permission to access the folder. You need to grant full disk access permission to the terminal that starts the ComfyUI program. For details, refer to the",e.jsx(W,{colorScheme:"teal",variant:"link",as:"a",ml:2,target:"_block",href:`https://stackoverflow.com/questions/58479686/permissionerror-errno-1-operation-not-permitted-after-macos + -catalina-update`,children:"Document"}),", or you can manually enter the absolute path of the folder in the input box below to save."]}):e.jsx(L,{fontWeight:500,children:"You do not have permission to access the folder. It is recommended that you manually enter the absolute path address of the required folder."}),ae]})})]})]})]})}function Ze({label:a,settingKey:t}){const[r,l]=i.useState(200),o=Y(),s=n=>{if(!n.length){l(0);return}l(parseInt(n))},d=async()=>{var n;r<0&&l(0),await((n=C)==null?void 0:n.upsert({[t]:Number(r)})),o({title:"Setting saved",status:"success",duration:3e3,isClosable:!0})},p=()=>{var n;(n=C)==null||n.getSetting(t).then(h=>{l(h)})};return i.useEffect(()=>{p()},[]),e.jsxs(B,{children:[e.jsx(L,{children:a}),e.jsx(Mt,{defaultValue:200,min:0,keepWithinRange:!0,placeholder:"Enter a number",maxWidth:"300px",value:r,onChange:n=>s(n),onBlur:()=>{d()},onKeyUp:n=>{n.key==="Enter"&&d()},children:e.jsx(Ft,{})})]})}function as(){const[a,t]=i.useState(!1),r=Y(),l=()=>{var o;(o=C)==null||o.getSetting("autoSave").then(s=>{t(!!s)})};return i.useEffect(()=>{l()},[]),e.jsxs(B,{children:[e.jsx(q,{isChecked:a,onChange:async o=>{var s;await((s=C)==null?void 0:s.upsert({autoSave:o.target.checked})),l(),r({title:"Setting saved",status:"success",duration:3e3,isClosable:!0})},children:"Enable auto save workflow"}),a&&e.jsx(Ze,{label:"Auto save duration (auto save workflow every X seconds)",settingKey:"autoSaveDuration"})]})}function os(){const a=Y(),[t,r]=i.useState(""),l=()=>{var s;(s=C)==null||s.getSetting("cloudHost").then(d=>{r(d??"")})};i.useEffect(()=>{l()},[]);const o=async s=>{var d;await((d=C)==null?void 0:d.upsert({cloudHost:s})),l(),a({title:"Setting saved. Please refresh to see the changes.",status:"success",duration:4e3})};return e.jsxs(B,{children:[e.jsx(L,{children:"For enterprise paid user only. Hosting site of the shared workflow."}),e.jsxs(Z,{gap:2,alignItems:"center",children:[e.jsx(pe,{value:t,onChange:s=>r(s.target.value),onBlur:()=>o(t)}),e.jsx(W,{size:"sm",onClick:()=>{var d;const s=(d=C)==null?void 0:d.defaultSettings.cloudHost;r(s),o(s)},children:"Reset"})]})]})}function is({onClose:a}){return e.jsx(e.Fragment,{children:e.jsxs(re,{isOpen:!0,onClose:a,size:"xl",children:[e.jsx(le,{}),e.jsxs(ce,{children:[e.jsx(de,{children:"Settings"}),e.jsx(ue,{}),e.jsx(he,{pb:14,children:e.jsx(z,{children:e.jsxs(He,{divider:e.jsx(rt,{borderColor:"gray.500"}),spacing:4,align:"stretch",w:"100%",children:[e.jsx(ns,{}),e.jsx(as,{}),e.jsx(es,{}),e.jsx(ss,{}),e.jsx(ts,{}),e.jsx(Ee,{settingKey:"overwriteCurWorkflowWhenDroppingFileToCanvas",text:"Overwrite current workflow when drag and drop workflow file to canvas"}),e.jsx(Ze,{label:`Maximum number of save change history to store. This does not include + versions that you created by "Create Version", which are always stored + and has no limit.`,settingKey:"maximumChangelogNumber"}),e.jsx(Ee,{settingKey:"hideCoverImage",text:"Hide thumbnail image in workflow list"}),e.jsx(os,{})]})})})]})]})})}const xe=16;function rs({}){const[a,t]=i.useState(!1),[r,l]=i.useState(!1),{colorMode:o,toggleColorMode:s}=ke();return e.jsxs(e.Fragment,{children:[e.jsxs(ee,{isLazy:!0,children:[e.jsx(se,{as:P,"aria-label":"Options",icon:e.jsx(Vt,{}),size:"sm",variant:"outline"}),e.jsxs(te,{children:[e.jsx(N,{onClick:()=>l(!0),icon:e.jsx(Yt,{size:16}),fontSize:16,children:"Settings"}),e.jsx(N,{onClick:()=>t(!0),icon:e.jsx(qt,{size:xe}),fontSize:16,children:"Manage Tags"}),e.jsxs(N,{onClick:s,icon:o==="light"?e.jsx(Ut,{size:xe}):e.jsx(Xt,{size:xe}),fontSize:16,children:[o==="light"?"Dark":"Light"," Mode"]})]})]}),a&&e.jsx(Qt,{onclose:()=>t(!1)}),r&&e.jsx(is,{onClose:()=>l(!1)})]})}function ls(a){const{multipleState:t,changeMultipleState:r,selectedKeys:l,isSelectedAll:o,batchOperationCallback:s}=a,d=async()=>{var h;const n=await((h=T)==null?void 0:h.batchQuery(l))??[];ct(n)},p=l.length===0;return e.jsx(z,{spacing:2,wrap:"wrap",mb:0,children:t?e.jsxs(e.Fragment,{children:[e.jsx(q,{isChecked:o,onChange:n=>{s("selectAll",n.target.checked)}}),e.jsx(R,{hasArrow:!0,label:"Download Zip",placement:"bottom",children:e.jsx(P,{isDisabled:p,"aria-label":"Batch export",size:"sm",icon:e.jsx(lt,{size:21}),onClick:d})}),e.jsx(R,{hasArrow:!0,label:"Batch deletion",children:e.jsx(Pe,{isDisabled:p,variant:"solid",promptMessage:`Are you sure you want to delete these ${l.length} checked workflows?`,tooltipText:"Delete selected",onDelete:async()=>{var n;await((n=T)==null?void 0:n.batchDeleteFlow(l)),s("batchDelete")}})}),l.length>0&&e.jsx(L,{fontWeight:600,children:`Selected ${l.length}`}),e.jsx(R,{hasArrow:!0,label:"Exit multi-select",children:e.jsx(P,{"aria-label":"Close multi-select operation",size:"sm",icon:e.jsx(Re,{}),onClick:()=>{r(!1)}})})]}):e.jsx(R,{hasArrow:!0,label:"Select multiple",placement:"bottom-start",children:e.jsx(P,{"aria-label":"Start multi-select operation",size:"sm",variant:"outline",icon:e.jsx(Kt,{size:21}),onClick:()=>{r(!0)}})})})}const Te=6;function cs({setSelectedTag:a,selectedTag:t}){const[r,l]=i.useState(!1),[o,s]=i.useState([]);return i.useEffect(()=>{var d;(d=je)==null||d.listAll().then(p=>{s(p)})},[]),e.jsxs(z,{spacing:2,wrap:"wrap",mb:0,children:[t!=null&&e.jsx(P,{"aria-label":"Close",size:"sm",icon:e.jsx(Re,{}),onClick:()=>{a(void 0)}}),o.slice(0,r?void 0:Te).map(d=>e.jsx(W,{variant:"solid",width:"auto",flexShrink:0,size:"sm",borderRadius:15,py:4,onClick:()=>{a(d.name)},isActive:t===d.name,children:d.name},d.name)),(o.length??0)>Te&&e.jsx(P,{"aria-label":"Show-all-tags",size:"sm",icon:r?e.jsx(_t,{}):e.jsx(Se,{}),onClick:()=>l(!r)})]})}function Ye({parentFolderID:a,onlyImportFile:t=!1}){const{onRefreshFilesList:r}=i.useContext(G),[l,o]=i.useState("file"),s=i.useRef(null),d=u=>{var g;o(u),u==="folder"?s.current.setAttribute("webkitdirectory",""):s.current.removeAttribute("webkitdirectory"),(g=s.current)==null||g.click()},p=async u=>{var g;if(u.type==="image/png"){const m=await Dt(u),c=m==null?void 0:m.workflow;if(c)return{json:c,name:u.name.replace(".png","")}}else if(u.type==="application/json"||(g=u.name)!=null&&g.endsWith(".json"))return await new Promise((m,c)=>{const f=new FileReader;f.onload=v=>{var S;try{const w=(S=v.target)==null?void 0:S.result;typeof w=="string"?m({json:w,name:u.name.replace(".json","")}):c(new Error("File content is not a string"))}catch(w){c(w)}},f.onerror=c,f.readAsText(u)});return null},n=async u=>{var m,c;const g=[u];for(;g.length>0;){const f=g.shift();if(f&&!f.isFile){const v=await((m=K)==null?void 0:m.create({name:f.name,parentFolderID:f.parentFolderID}));if(f.children&&f.children.length){const S=[];f.children.forEach(w=>{w.isFile&&w.file?S.push(w.file):(w.parentFolderID=v==null?void 0:v.id,g.push(w))}),S.length&&await((c=T)==null?void 0:c.batchCreateFlows(S,void 0,v==null?void 0:v.id))}}}r==null||r()},h=async u=>{var m;const g=u.target.files;if(g)if(l==="folder"){const c={name:g[0].webkitRelativePath.split("/")[0],isFile:!1,children:[]};for(const f of g)if(f.name!==".DS_Store"){const v=f.webkitRelativePath.split("/");let S=c.children??[];for(let w=1;wy.name===b);if(!F){if(F={name:b,isFile:w===v.length-1,children:w===v.length-1?void 0:[]},F.isFile){const y=await p(f);y&&(F.file=y)}S.push(F)}F&&!F.isFile&&(S=F.children)}}n(c)}else{const c=[];for(const f of g){const v=await p(f);v&&c.push(v)}c.length&&(await((m=T)==null?void 0:m.batchCreateFlows(c,void 0,a)),r&&r())}};return e.jsxs(e.Fragment,{children:[t?e.jsx(N,{onClick:u=>{u.stopPropagation(),d("file")},icon:e.jsx(De,{size:19}),children:"Import workflows"}):e.jsxs(ee,{closeOnSelect:!0,children:[e.jsx(se,{as:W,leftIcon:e.jsx(De,{size:18}),variant:"outline",iconSpacing:1,size:"sm",colorScheme:"teal",children:"Import"}),e.jsx(te,{children:dt.map((u,g)=>e.jsx(N,{onClick:()=>{d(u.type)},iconSpacing:2,icon:u.type==="folder"?e.jsx(_e,{size:18}):e.jsx(Ht,{size:18}),children:u.title},g))})]}),e.jsx("input",{style:{display:"none"},ref:s,type:"file",accept:".json,image/png",multiple:!0,onChange:h,onClick:u=>{u.stopPropagation()}})]})}function ds({folder:a,onclose:t}){const[r,l]=i.useState(a.name),[o,s]=i.useState(""),{onRefreshFilesList:d}=i.useContext(G),p=h=>{l(h.target.value),o&&s("")},n=async()=>{var g,m;const h=r.trim();if(l(h),h===a.name)return t();await((g=K)==null?void 0:g.generateUniqueName(h,a.parentFolderID??""))!==h?s("The name is duplicated, please modify it and submit again."):(await((m=K)==null?void 0:m.update(a.id,{name:h})),d&&d(),t())};return e.jsxs(re,{isOpen:!0,onClose:t,children:[e.jsx(le,{}),e.jsxs(ce,{children:[e.jsx(de,{children:"Edit folder name"}),e.jsx(ue,{}),e.jsx(he,{children:e.jsxs(ut,{isInvalid:!!o,children:[e.jsx(ht,{children:"Folder name"}),e.jsx(pe,{value:r,onChange:p,autoFocus:!0,onKeyUp:h=>{h.code==="Enter"&&!o&&r&&n()}}),o&&e.jsx(pt,{children:o})]})}),e.jsxs(Qe,{children:[e.jsx(W,{colorScheme:"teal",mr:3,onClick:n,isDisabled:!r||!!o,children:"Save"}),e.jsx(W,{onClick:t,children:"Cancel"})]})]})]})}function us({menuPosition:a,isopen:t,folder:r,onClose:l}){const[o,s]=i.useState(!1),{onRefreshFilesList:d}=i.useContext(G),{showDialog:p}=ve(),n=async m=>{var c;m.stopPropagation(),await((c=K)==null?void 0:c.create({name:"New Folder",parentFolderID:r.id})),d&&d()},h=async m=>{var c;m.stopPropagation(),await((c=T)==null?void 0:c.createFlow({json:JSON.stringify(gt),parentFolderID:r.id})),d&&d()},u=async m=>{m.stopPropagation();const c=await mt(r.id);p(`Do you want to delete the ${c} files inside the folder too?`,[{label:"Delete all files",colorScheme:"red",onClick:()=>{g(ft.DELETE)}}])},g=async m=>{var c;await((c=K)==null?void 0:c.deleteFolder(r.id,m)),l(),d&&d()};return e.jsxs(e.Fragment,{children:[e.jsx(_,{position:"absolute",top:a.y,left:a.x,children:e.jsx(ee,{isOpen:t,onClose:l,isLazy:!0,lazyBehavior:"keepMounted",children:e.jsxs(te,{children:[e.jsx(N,{icon:e.jsx(Zt,{size:19}),onClick:m=>{m.preventDefault(),m.stopPropagation(),s(!0)},children:"Rename"}),e.jsx(N,{icon:e.jsx(Ne,{size:19}),onClick:u,children:"Delete"}),e.jsx(N,{onClick:n,icon:e.jsx(Ue,{size:19}),children:"New folder"}),e.jsx(N,{onClick:h,icon:e.jsx(Be,{size:19}),children:"New file"}),e.jsx(Ye,{parentFolderID:r.id,onlyImportFile:!0})]})})}),o&&e.jsx(ds,{folder:r,onclose:()=>s(!1)})]})}const Oe=i.memo(function({folder:t}){const[r,l]=i.useState(!1),[o,s]=i.useState(t.isCollapse??!0),[d,p]=i.useState([]),[n,h]=i.useState({x:0,y:0}),[u,g]=i.useState(!1),{colorMode:m}=ke(),{draggingFile:c,setDraggingFile:f,refreshFolderStamp:v,onRefreshFilesList:S}=i.useContext(G),w=m==="light"?{backgroundColor:"#E2E8F0"}:{backgroundColor:"#4A5568"};i.useEffect(()=>{var y;o||(y=T)==null||y.listFolderContent(t.id,window.localStorage.getItem(ye)).then(O=>{p(O)})},[t.id,v,o]);const b=y=>{y.preventDefault(),h({x:y.clientX,y:y.clientY}),g(!0)},F=async y=>{var O,$;if(y.preventDefault(),y.stopPropagation(),!c)return l(!1);if(U(c)){if(c.id===t.id)return l(!1);await((O=K)==null?void 0:O.update(c.id,{parentFolderID:t.id}))}else U(c)||await(($=T)==null?void 0:$.updateFolder(c.id,{parentFolderID:t.id}));await(S==null?void 0:S()),l(!1)};return i.useEffect(()=>{var y;!!t.isCollapse!==o&&((y=K)==null||y.update(t.id,{isCollapse:o}))},[o]),i.useEffect(()=>{var X;const y=(X=T)==null?void 0:X.curWorkflow,O=(y==null?void 0:y.parentFolderID)+"/",$=t.id+"/";O.startsWith($)&&s(!1)},[]),e.jsxs(B,{children:[e.jsxs(z,{w:"100%",as:"button",py:1,onClick:()=>{s(!o)},onContextMenu:b,draggable:"true",onDragOver:y=>{y.preventDefault(),y.stopPropagation(),l(!0)},onDragLeave:y=>{y.preventDefault(),y.stopPropagation(),l(!1)},onDragStart:()=>f==null?void 0:f(t),onDrop:F,_hover:w,style:r||u?w:void 0,className:"droppable",children:[e.jsxs(z,{gap:1,children:[o?e.jsx(Et,{size:20}):e.jsx(Se,{size:20}),e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#EFC54D",style:{width:"1.2rem",height:"1.2rem"},children:e.jsx("path",{d:"M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z"})})]}),e.jsx(L,{children:t.name})]}),e.jsx(us,{isopen:u,menuPosition:n,onClose:()=>g(!1),folder:t}),!o&&e.jsx(B,{ml:4,gap:0,children:e.jsx(Xe,{items:d})})]})});function hs({workflow:a}){const t=i.useRef(null),r=Y(),{onDuplicateWorkflow:l}=i.useContext(Ce),[o,s]=i.useState(a.saveLock??!1),d=async()=>{var h;const n=!o;s(n),await((h=T)==null?void 0:h.updateMetaInfo(a.id,{saveLock:n})),r({title:`${n?"Locked":"Unlocked"} successfully`,status:"success",duration:2e3})},p=async n=>{const h=n.target.files;if(!h)return;const u=new FormData;Array.from(h).forEach((g,m)=>{u.append(`images[${m}]`,g,g.name)}),u.append("subfolder","workspace_manager"),await yt("/workspace/images/save",{method:"POST",body:u}),Array.from(h).forEach(async g=>{var c,f;const m=`workspace_manager/${g.name}`;(c=wt)==null||c.create({workflowID:a.id,localPath:m}),(f=T)==null||f.updateMetaInfo(a.id,{coverMediaPath:m})})};return e.jsxs(e.Fragment,{children:[e.jsxs(ee,{isLazy:!0,closeOnSelect:!1,placement:"right",gutter:0,children:[e.jsx(se,{border:0,as:P,"aria-label":"Options",icon:e.jsx(Bt,{size:20}),size:"sm",variant:"outline"}),e.jsxs(te,{zIndex:101,children:[e.jsx(N,{icon:e.jsx(Lt,{}),onClick:()=>l&&l(a.id),children:"Duplicate"}),e.jsx(N,{icon:e.jsx(xt,{size:20}),onClick:()=>jt(a.id),children:"Open in new tab"}),e.jsx(R,{hasArrow:!0,label:o?"Unlock workflow, allow modifying":"Lock workflow, prevent modifying",placement:"bottom",children:e.jsx(N,{icon:o?e.jsx($e,{}):e.jsx(Gt,{}),onClick:d,children:o?"Unlock":"Lock"})}),e.jsx(N,{icon:e.jsx(Jt,{}),onClick:()=>{var n;(n=t.current)==null||n.click()},children:"Upload Thumbnail Image"})]})]}),e.jsx("input",{style:{display:"none"},ref:t,type:"file",accept:".json,image/png",multiple:!0,onChange:p,onClick:n=>{n.stopPropagation()}})]})}function ps({workflow:a}){const{onDeleteFlow:t}=i.useContext(G);return e.jsxs(Z,{justifyContent:"flex-end",children:[e.jsx(Pe,{promptMessage:"Are you sure you want to delete this workflow?",onDelete:()=>{t&&t(a.id)}}),e.jsx(hs,{workflow:a})]})}const ze=i.memo(function({workflow:t}){var v,S,w,b;const{colorMode:r}=ke(),{setDraggingFile:l,isMultiSelecting:o,onMultiSelectFlow:s,multiSelectedFlowsID:d}=i.useContext(G),p=d&&d.length>0&&d.includes(t.id),{curFlowID:n,loadWorkflowID:h}=i.useContext(Ce),u=n===t.id,g=r==="light"?"gray.200":"#4A5568",[m,c]=i.useState(!1),f=e.jsx(_,{flexShrink:1,flexGrow:1,backgroundColor:u?"teal.200":void 0,color:u&&!o?"#333":void 0,draggable:!o,onDragStart:()=>l==null?void 0:l(t),borderRadius:6,px:1,py:"5px",onClick:()=>{!o&&h(t.id)},_hover:{bg:g},children:e.jsxs(z,{flexGrow:1,children:[!((S=(v=C)==null?void 0:v.settings)!=null&&S.hideCoverImage)&&(((w=t.coverMediaPath)==null?void 0:w.length)||((b=t.latestImage)==null?void 0:b.length))&&e.jsx(Tt,{mediaLocalPath:t.coverMediaPath??t.latestImage??"",size:60,hideBrokenImage:!0,isPreview:!0}),e.jsx(_,{textAlign:"left",gap:0,justifyContent:"space-between",flexGrow:1,children:e.jsxs(Z,{alignItems:"center",children:[e.jsx(L,{fontWeight:"500",noOfLines:1,wordBreak:"break-all",children:t.name??"untitled"}),t.saveLock&&e.jsx($e,{size:18,style:{display:"inline-block"}})]})})]})});return e.jsx(z,{w:"100%",justify:"space-between",borderBottom:"1px solid",borderColor:r=="dark"?"gray.700":"gray.200",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:o?e.jsx(q,{isChecked:p,spacing:4,onChange:F=>{s&&s(t.id,F.target.checked)},children:f}):e.jsxs(e.Fragment,{children:[f,e.jsx(_,{width:"fit-content",children:m?e.jsx(ps,{workflow:t}):e.jsx(L,{color:"GrayText",fontSize:"sm",children:vt(t.updateTime,!1,!1,"/")})})]})})});function Xe({items:a}){var m;const[t,r]=i.useState(!1),l=a.filter(U),o=a.filter(c=>!U(c)),s=(m=o[0])==null?void 0:m.parentFolderID,[d,p]=i.useState(!1),{onRefreshFilesList:n,draggingFile:h,refreshFolderStamp:u}=i.useContext(G),g=async c=>{var f,v;if(c.preventDefault(),c.stopPropagation(),!h)return p(!1);if(U(h)){if(h.id===s)return p(!1);await((f=K)==null?void 0:f.update(h.id,{parentFolderID:s}))}else await((v=T)==null?void 0:v.updateFolder(h.id,{parentFolderID:s}));await(n==null?void 0:n()),p(!1)};return i.useEffect(()=>{var c;(c=C)==null||c.getSetting("foldersOnTop").then(f=>{r(f??!1)})},[u]),e.jsxs(e.Fragment,{children:[t&&l.map(c=>e.jsx(Oe,{folder:c},c.id)),e.jsx(_,{border:d?"2px dashed #718096":"2px dashed transparent",onDragOver:c=>{c.preventDefault(),c.stopPropagation(),p(!0)},onDragLeave:c=>{c.preventDefault(),c.stopPropagation(),p(!1)},onDrop:g,className:"droppable",children:t?o.map(c=>e.jsx(ze,{workflow:c},c.id)):a.map(c=>U(c)?e.jsx(Oe,{folder:c},c.id):e.jsx(ze,{workflow:c},c.id))})]})}function ks({onClose:a,onClickNewFlow:t}){const[r,l]=i.useState([]),o=i.useRef([]),{loadWorkflowID:s,curFlowID:d}=i.useContext(Ce),[p,n]=i.useState(),[h,u]=i.useState(!1),[g,m]=i.useState([]),[c,f]=i.useState(0),[v,S]=i.useState(""),w=Ot(v,400),b=i.useRef(null),[F,y]=i.useState(null),O=i.useRef(window.localStorage.getItem(ye)??J.RECENTLY_MODIFIED),$=!!p||!!w.length,H=async()=>{var I,M;const x=await((I=T)==null?void 0:I.listFolderContent())??[];l(fe(x,O.current)),f(Date.now()),o.current=await((M=T)==null?void 0:M.listAll())??[]},X=()=>{const x=o.current.filter(I=>{var Ie;let M=!0,D=!0;return p&&(M=!!((Ie=I.tags)!=null&&Ie.includes(p))),w&&(D=!!I.name.toLocaleLowerCase().includes(w.toLocaleLowerCase())),M&&D});l(fe(x,O.current))},ne=x=>{l(fe(r,x)),O.current=x,window.localStorage.setItem(ye,x),!$&&f(Date.now())};i.useEffect(()=>{$?X():H()},[w,p]);const ae=i.useCallback(async x=>{var I,M,D;await((I=T)==null?void 0:I.deleteFlow(x)),((D=(M=T)==null?void 0:M.curWorkflow)==null?void 0:D.id)===x&&await(s==null?void 0:s(null)),await H()},[p,w]);i.useEffect(()=>{const x=async I=>{var M;if(b.current){const D=await((M=T)==null?void 0:M.get(b.current));D&&D.json&&bt(D.json,[I.canvasX,I.canvasY])}};return oe.canvasEl.addEventListener("drop",x),oe.canvasEl.addEventListener("click",a),()=>{oe.canvasEl.removeEventListener("drop",x),oe.canvasEl.removeEventListener("click",a)}},[]);const ge=i.useCallback((x,I)=>{m(M=>{const D=[...M];return I?D.push(x):D.splice(D.indexOf(x),1),D})},[]),j=(x,I)=>{var M;switch(x){case"batchDelete":d&&((M=T)==null||M.get(d).then(D=>{D||s==null||s(null)})),H(),u(!1),m([]);return;case"selectAll":m(I?o.current.map(D=>D.id):[]);return}},k=x=>{y(x),U(x)||(b.current=x.id)},E=x=>{S(x)},V=450;return e.jsx(G.Provider,{value:{onRefreshFilesList:H,draggingFile:F??void 0,setDraggingFile:k,isMultiSelecting:h,onMultiSelectFlow:ge,multiSelectedFlowsID:g,onDeleteFlow:ae,refreshFolderStamp:c,setRefreshFolderStamp:f},children:e.jsx(_,{style:{width:V},children:e.jsxs(kt,{width:V,height:"100vh",pl:2,pr:2,pt:4,gap:4,position:"absolute",top:0,left:0,shadow:"xl",zIndex:St,children:[e.jsxs(Z,{alignItems:"center",justifyContent:"space-between",children:[e.jsxs(z,{gap:4,children:[e.jsx(z,{gap:2,children:e.jsx(L,{fontSize:19,fontWeight:600,children:"🦄Workspace"})}),e.jsx(Ye,{}),e.jsx(R,{label:"Open workspace save directory",children:e.jsx(P,{"aria-label":"Open workspace save directory",size:"sm",icon:e.jsx(_e,{}),variant:"outline",colorScheme:"teal",onClick:()=>Ct()})}),e.jsx(R,{label:"New workflow",children:e.jsx(P,{"aria-label":"New workflow",size:"sm",icon:e.jsx(Be,{}),variant:"outline",colorScheme:"teal",onClick:t})})]}),e.jsx(z,{alignItems:"center",children:e.jsx(rs,{})})]}),e.jsxs(Z,{direction:"column",h:"calc(100% - 64px)",children:[e.jsx(cs,{selectedTag:p,setSelectedTag:n}),e.jsxs(z,{mb:2,mt:2,p:0,justifyContent:"space-between",children:[e.jsxs(z,{children:[e.jsx(ls,{multipleState:h,changeMultipleState:x=>{u(x),!x&&m([])},selectedKeys:g,isSelectedAll:g.length===o.current.length,batchOperationCallback:j}),!h&&e.jsx(R,{hasArrow:!0,label:"New folder",placement:"bottom-start",children:e.jsx(P,{size:"sm",variant:"outline",icon:e.jsx(Ue,{size:21}),onClick:async()=>{var x;await((x=K)==null?void 0:x.create({name:"New Folder"})),H()},"aria-label":"new folder button"})})]}),e.jsxs(ee,{closeOnSelect:!0,children:[e.jsx(se,{as:W,variant:"ghost",size:"xs",pr:0,rightIcon:e.jsx(Se,{size:"16"}),children:e.jsxs(z,{children:[e.jsx(L,{children:"Sort by:"}),e.jsx(L,{display:"inline-block",children:O.current})]})}),e.jsx(te,{children:e.jsx(Ve,{value:O.current,type:"radio",onChange:x=>ne(x),children:[J.RECENTLY_MODIFIED,J.OLDEST_MODIFIED,J.AZ,J.ZA].map((x,I)=>e.jsx(be,{value:x,children:x},I))})})]})]}),e.jsx(zt,{searchValue:v,onUpdateSearchValue:E}),e.jsx(Z,{overflowY:"auto",overflowX:"hidden",direction:"column",style:{overflowY:"scroll",scrollbarWidth:"none",msOverflowStyle:"none"},children:e.jsx(Xe,{items:r})})]})]})})})}export{ks as default}; diff --git a/dist/workspace_web/ShareDialog-3XWt4eF0.js b/dist/workspace_web/ShareDialog-3XWt4eF0.js deleted file mode 100644 index b1284e0..0000000 --- a/dist/workspace_web/ShareDialog-3XWt4eF0.js +++ /dev/null @@ -1 +0,0 @@ -import{r as t,m as ae,x as Y,b as ne,f as re,j as e,g as ie,h as le,i as M,M as ce,N as de,O as ue,Q as fe,S as he}from"./input.js";import{B as pe,A as ge,a6 as we,aE as me,f as xe,k as z,F as X,g as H,aK as ve,H as Z,j as ke,aL as ye,aM as be,x as E,aN as F,aO as je,aP as Se,a5 as Ce,aQ as De,h as Ie,T as Re,aR as Ee,_ as Le}from"./App-eQybp91e.js";import{S as Te,L as We}from"./chunk-VTV6N5LE-_EaL4yE7.js";import{I as _e}from"./IconCopy-D2k-9fMf.js";import"./chunk-7D6N5TE5-lFR77IBa.js";function Pe(n){return n&&Y(n)&&Y(n.target)}function Ne(n={}){const{onChange:u,value:f,defaultValue:g,name:w,isDisabled:h,isFocusable:r,isNative:c,...a}=n,[b,j]=t.useState(g||""),p=typeof f<"u",m=p?f:b,x=t.useRef(null),i=t.useCallback(()=>{const l=x.current;if(!l)return;let d="input:not(:disabled):checked";const I=l.querySelector(d);if(I){I.focus();return}d="input:not(:disabled)";const v=l.querySelector(d);v==null||v.focus()},[]),T=`radio-${t.useId()}`,S=w||T,D=t.useCallback(l=>{const d=Pe(l)?l.target.value:l;p||j(d),u==null||u(String(d))},[u,p]),W=t.useCallback((l={},d=null)=>({...l,ref:ae(d,x),role:"radiogroup"}),[]),_=t.useCallback((l={},d=null)=>({...l,ref:d,name:S,[c?"checked":"isChecked"]:m!=null?l.value===m:void 0,onChange(v){D(v)},"data-radiogroup":!0}),[c,S,D,m]);return{getRootProps:W,getRadioProps:_,name:S,ref:x,focus:i,setValue:j,value:m,onChange:D,isDisabled:h,isFocusable:r,htmlProps:a}}var[Ve,Be]=ne({name:"RadioGroupContext",strict:!1}),ee=re((n,u)=>{const{colorScheme:f,size:g,variant:w,children:h,className:r,isDisabled:c,isFocusable:a,...b}=n,{value:j,onChange:p,getRootProps:m,name:x,htmlProps:i}=Ne(b),L=t.useMemo(()=>({name:x,size:g,onChange:p,colorScheme:f,value:j,variant:w,isDisabled:c,isFocusable:a}),[x,g,p,f,j,w,c,a]);return e.jsx(Ve,{value:L,children:e.jsx(ie.div,{...m(i,u),className:le("chakra-radio-group",r),children:h})})});ee.displayName="RadioGroup";function Fe({options:n,value:u,onChange:f}){const[g,w]=t.useState(!1),h=t.useRef(null),r=n.find(a=>a.value===u);t.useEffect(()=>{const a=b=>{h.current&&!h.current.contains(b.target)&&w(!1)};return document.addEventListener("mousedown",a),()=>{document.removeEventListener("mousedown",a)}},[h]);const c=()=>w(!g);return e.jsxs(pe,{position:"relative",children:[e.jsx(M,{onClick:c,rightIcon:e.jsx(ge,{}),leftIcon:r==null?void 0:r.icon,children:r==null?void 0:r.label}),g&&e.jsx(we,{gap:4,ref:h,mt:"2",shadow:"md",borderWidth:"1px",p:"2",position:"absolute",zIndex:100,children:n.map(a=>e.jsx(M,{onClick:()=>{w(!1),f(a.value)},leftIcon:a.icon,justifyContent:"flex-start",variant:"ghost",width:"full",children:a.label},a.label))})]})}function Ke({onClose:n}){var O,$,G,B,K;const[u,f]=t.useState("v"+Me()),[g,w]=t.useState([]),[h,r]=t.useState(!1),c=($=(O=z)==null?void 0:O.settings)==null?void 0:$.cloudHost,[a,b,j]=me("PRIVATE"),[p,m]=t.useState("new_version"),x=t.useRef(""),i=(G=E)==null?void 0:G.curWorkflow,L=xe(),T=t.useRef(null),[S,D]=t.useState(!0),W=async o=>{var P,N;const s=o.data;if(s.type!=="share_workflow_success")return;const k=s.localWorkflowID,y=s.localVersionID,C=s.version.id,R=s.version.workflowID;R&&k&&await((P=E)==null?void 0:P.updateMetaInfo(k,{cloudID:R,cloudOrigin:o.origin,privacy:j.current})),y&&C&&await((N=F)==null?void 0:N.update(y,{cloudID:C,cloudOrigin:o.origin})),_(),window.open(x.current+"/workflow/"+R+"/"+C,"_blank"),r(!1)};t.useEffect(()=>{_(),window.addEventListener("message",W);const o=s=>{s.detail&&d(s.detail?JSON.stringify(s.detail):void 0)};return window.addEventListener("workspace_info_deps_updated",o),()=>{window.removeEventListener("message",W),window.removeEventListener("workspace_info_deps_updated",o)}},[]);const _=async()=>{var s,k;const o=await((s=z)==null?void 0:s.getSetting("cloudHost"));o&&(x.current=o),i!=null&&i.cloudID&&i.cloudOrigin&&De(i).then(y=>{b(y)}),(k=F)==null||k.listByWorkflowID(i.id).then(y=>{w(y)})},l=o=>{navigator.clipboard.writeText(o).then(()=>{L({title:"Copied to clipboard",status:"success",duration:2e3,isClosable:!0})}).catch(s=>{console.error("Failed to copy text: ",s)})},d=async o=>{var A,U,J;r(!0);const s=je(32),k=await((A=z)==null?void 0:A.getSetting("cloudHost"));let y,C;try{if(y=Se(),p==="new_version"?C=await((U=F)==null?void 0:U.add({workflowID:i.id,name:u,createTime:Date.now(),json:o??JSON.stringify(Ce.graph.serialize())})):C=await((J=F)==null?void 0:J.get(p)),!C){alert(`Failed to find version: ${p}, please try again.`),r(!1);return}}catch(V){console.error(V),r(!1),alert("Failed to share workflow, please try again.");return}const R=window.location.protocol,P=window.location.host,N=`${R}//${P}`,oe=k+`/share_workflow_confirm/${s}?redirectUrl=${N}`,se=window.open(oe,"Share Workflow","width=800,height=800"),q=V=>{var Q;if(V.origin===k&&V.data==="child_ready"){const te=(Q=E)==null?void 0:Q.curWorkflow;se.postMessage({workflow:te,version:C,nodeDefs:y,privacy:j.current},k),window.removeEventListener("message",q)}};window.addEventListener("message",q)},I=async()=>{var o;S?(o=T.current)==null||o.requestSubmit():d()},v=(K=(B=E)==null?void 0:B.curWorkflow)==null?void 0:K.cloudID;return e.jsxs(ce,{isOpen:!0,onClose:n,size:"lg",children:[e.jsx(de,{}),e.jsxs(ue,{width:["98%","90%","50%"],maxWidth:"600px",children:[e.jsxs(fe,{children:[e.jsxs(X,{justifyContent:"space-between",children:[e.jsxs("p",{children:['Share "',i==null?void 0:i.name,'"']}),e.jsx(M,{colorScheme:"teal",onClick:I,size:"sm",isDisabled:h,children:h?"Sharing":"Share"})]}),c&&e.jsxs(Ie,{fontSize:16,color:"GrayText",fontWeight:400,children:["Share to ",new URL(c).host]})]}),e.jsx(he,{pb:10,children:e.jsxs(H,{gap:5,children:[v==null?e.jsx(Fe,{options:ve,value:a,onChange:o=>{b(o)}}):e.jsx(Re,{variant:"outline",borderRadius:"full",width:"fit-content",children:e.jsx(Ee,{privacy:a,showEmoji:!0})}),v&&e.jsxs(Z,{spacing:2,color:"teal.400",children:[e.jsxs(We,{wordBreak:"break-all",href:c+"/workflow/"+v,isExternal:!0,children:[c+"/workflow/"+v," ",e.jsx(Le,{size:20,style:{display:"inline-block",verticalAlign:"middle"}})]}),e.jsx(M,{size:"sm",leftIcon:e.jsx(_e,{size:18}),onClick:()=>{var o,s;l(c+"/workflow/"+((s=(o=E)==null?void 0:o.curWorkflow)==null?void 0:s.cloudID))},children:"Copy link"})]}),e.jsx(ee,{gap:4,onChange:o=>{m(o)},value:p,children:e.jsx(H,{children:e.jsxs(Z,{mb:5,alignItems:"center",children:[e.jsx(ke,{value:u,width:"60%",onFocus:()=>{m("new_version")},onChange:o=>{f(o.target.value)}}),e.jsx(X,{color:"green",children:e.jsx(ye,{colorScheme:"purple",children:"Version Name"})})]})})}),e.jsxs(H,{borderRadius:6,borderWidth:"1px",p:2,children:[e.jsx(Te,{isChecked:S,onChange:()=>D(!S),fontWeight:"600",children:"Share Resource Links"}),S&&e.jsxs(e.Fragment,{children:[e.jsx("span",{style:{color:"GrayText"},children:"You can disable reource sharing if you don't want to resolve submit errors"}),e.jsx(be,{ref:T})]})]})]})})]})]})}function Me(){const n=new Date,u=n.getFullYear(),f=String(n.getMonth()+1).padStart(2,"0"),g=String(n.getDate()).padStart(2,"0");return`${u}-${f}-${g}`}export{Ke as default}; diff --git a/dist/workspace_web/ShareDialog-gnVPTurL.js b/dist/workspace_web/ShareDialog-gnVPTurL.js new file mode 100644 index 0000000..9821829 --- /dev/null +++ b/dist/workspace_web/ShareDialog-gnVPTurL.js @@ -0,0 +1 @@ +import{f as te,n as ge,o as we,j as e,g as ae,e as ne,r as u,m as xe,w as X,b as je,h as z,a0 as Z,M as ve,N as ye,O as be,Q as ke,S as Se}from"./input.js";import{B as Ce,A as Ie,a4 as De,g as T,H as A,ac as Re,a3 as R,af as M,am as Ee,ay as ee,X as Ne,f as Pe,F as oe,aD as Te,j as Oe,k as se,x as _,$ as We,aE as _e,aF as Fe,aG as Me,aH as ze,h as Le,T as Ae,aI as Ge,Y as He}from"./App-Pi18TWng.js";import{I as $e}from"./chunk-7D6N5TE5-ZfhYDM9i.js";import{a as Be}from"./civitUtils-8IbIESmj.js";import{S as Ue,L as Ve}from"./chunk-VTV6N5LE-K9rVd8eY.js";import{I as Je}from"./IconCopy-Ge1LD4_a.js";var re=te(function(i,l){const r=ge("Badge",i),{className:t,...o}=we(i);return e.jsx(ae.span,{ref:l,className:ne("chakra-badge",i.className),...o,__css:{display:"inline-block",whiteSpace:"nowrap",verticalAlign:"middle",...r}})});re.displayName="Badge";function Ke(s){return s&&X(s)&&X(s.target)}function qe(s={}){const{onChange:i,value:l,defaultValue:r,name:t,isDisabled:o,isFocusable:f,isNative:y,...d}=s,[b,v]=u.useState(r||""),p=typeof l<"u",w=p?l:b,x=u.useRef(null),a=u.useCallback(()=>{const m=x.current;if(!m)return;let g="input:not(:disabled):checked";const O=m.querySelector(g);if(O){O.focus();return}g="input:not(:disabled)";const E=m.querySelector(g);E==null||E.focus()},[]),j=`radio-${u.useId()}`,h=t||j,C=u.useCallback(m=>{const g=Ke(m)?m.target.value:m;p||v(g),i==null||i(String(g))},[i,p]),k=u.useCallback((m={},g=null)=>({...m,ref:xe(g,x),role:"radiogroup"}),[]),L=u.useCallback((m={},g=null)=>({...m,ref:g,name:h,[y?"checked":"isChecked"]:w!=null?m.value===w:void 0,onChange(E){C(E)},"data-radiogroup":!0}),[y,h,C,w]);return{getRootProps:k,getRadioProps:L,name:h,ref:x,focus:a,setValue:v,value:w,onChange:C,isDisabled:o,isFocusable:f,htmlProps:d}}var[Ye,lo]=je({name:"RadioGroupContext",strict:!1}),ie=te((s,i)=>{const{colorScheme:l,size:r,variant:t,children:o,className:f,isDisabled:y,isFocusable:d,...b}=s,{value:v,onChange:p,getRootProps:w,name:x,htmlProps:a}=qe(b),I=u.useMemo(()=>({name:x,size:r,onChange:p,colorScheme:l,value:v,variant:t,isDisabled:y,isFocusable:d}),[x,r,p,l,v,t,y,d]);return e.jsx(Ye,{value:I,children:e.jsx(ae.div,{...w(a,i),className:ne("chakra-radio-group",f),children:o})})});ie.displayName="RadioGroup";function Qe({options:s,value:i,onChange:l}){const[r,t]=u.useState(!1),o=u.useRef(null),f=s.find(d=>d.value===i);u.useEffect(()=>{const d=b=>{o.current&&!o.current.contains(b.target)&&t(!1)};return document.addEventListener("mousedown",d),()=>{document.removeEventListener("mousedown",d)}},[o]);const y=()=>t(!r);return e.jsxs(Ce,{position:"relative",children:[e.jsx(z,{onClick:y,rightIcon:e.jsx(Ie,{}),leftIcon:f==null?void 0:f.icon,children:f==null?void 0:f.label}),r&&e.jsx(De,{gap:4,ref:o,mt:"2",shadow:"md",borderWidth:"1px",p:"2",position:"absolute",zIndex:100,children:s.map(d=>e.jsx(z,{onClick:()=>{t(!1),l(d.value)},leftIcon:d.icon,justifyContent:"flex-start",variant:"ghost",width:"full",children:d.label},d.label))})]})}function Xe({deps:s,uploadingImage:i}){const l=Object.values((s==null?void 0:s.images)??{});return s?e.jsx(T,{gap:5,children:l.length>0&&e.jsxs(T,{children:[e.jsxs(A,{children:[e.jsxs(Re,{size:"sm",children:["Images (",l.length,")"]}),e.jsx("p",{style:{color:"GrayText"},children:"Will be uploaded as url"})]}),i&&e.jsxs("span",{children:[e.jsx(Z,{size:"md",color:"teal.400"})," Uploading"]}),l.map(r=>e.jsxs(T,{children:[e.jsx("p",{children:r.filename}),e.jsx($e,{width:250,src:`/workspace/view_media?filename=${r.filename}&isPreview=true&isInput=true`})]},r.filename))]})}):e.jsx(Z,{size:"md",color:"teal.400"})}async function Ze(s,i,l){const r=await Ee.models.where("fileName").equals(s).toArray()??[];console.log("fetch modeldata",r);const t=r.at(0);return{name:s,nodeType:i,hash:(t==null?void 0:t.fileHash)??null,folder:(t==null?void 0:t.fileFolder)??null,url:t!=null&&t.civitModelVersionID?Be(t.civitModelVersionID):(t==null?void 0:t.downloadUrl)??null,inputName:l,length:r.length}}async function eo(s){var w,x;let i=[],l={};const r=[".ckpt",".pt",".bin",".pth",".safetensors"],t=[".jpeg",".jpg",".png",".gif",".webp"],o=(x=(w=R.graph.extra)==null?void 0:w[M])==null?void 0:x.deps,f=await R.graphToPrompt();Object.values(f.output).forEach(a=>{a.inputs&&Object.keys(a.inputs).forEach(I=>{var h,C;const j=(h=a.inputs)==null?void 0:h[I];typeof j=="string"&&(r.some(k=>j.endsWith(k))&&i.push(Ze(j,a.class_type,I)),t.some(k=>j.endsWith(k))&&(l[j]=((C=o==null?void 0:o.images)==null?void 0:C[j])??{filename:j,nodeType:a.class_type}))})});const d=await fetch("workspace/fetch_node_repos",{method:"POST",body:JSON.stringify({nodes:s.map(a=>a.type)})}).then(a=>a.ok?a.json():[]).catch(a=>(console.error("Error fetching node repos",a),[])),b=await Promise.all(i),v={};b.forEach(a=>{v[a.name]=a});const p={};return Object.values(d).forEach(a=>{p[a.gitRepo]=a}),{models:v,images:l,nodeRepos:Object.values(p)}}function co({onClose:s}){var G,H,$,B,U;const[i,l,r]=ee("v"+oo()),{saveCurWorkflow:t}=u.useContext(Ne),[o,f]=u.useState(),[y,d]=u.useState(!1),[b,v]=u.useState(!1),p=(H=(G=se)==null?void 0:G.settings)==null?void 0:H.cloudHost,[w,x,a]=ee("PRIVATE"),[I,j]=u.useState("new_version"),h=($=_)==null?void 0:$.curWorkflow,C=Pe(),[k,L]=u.useState(!0),m=async n=>{var P;const c=n.data;if(c.type!=="share_workflow_success")return;const D=c.localWorkflowID,N=c.version.id,S=c.version.workflowID;S&&D&&await((P=_)==null?void 0:P.updateMetaInfo(D,{cloudID:S,privacy:a.current})),g(),window.open(p+"/workflow/"+S+"/"+N,"_blank"),v(!1)};u.useEffect(()=>{g();const n=R.graph.serialize();return eo(n.nodes??[]).then(c=>{f(c)}),window.addEventListener("message",m),()=>{window.removeEventListener("message",m)}},[]);const g=async()=>{h!=null&&h.cloudID&&h.cloudOrigin&&ze(h).then(n=>{x(n)})},O=n=>{navigator.clipboard.writeText(n).then(()=>{C({title:"Copied to clipboard",status:"success",duration:2e3,isClosable:!0})}).catch(c=>{console.error("Failed to copy text: ",c)})},E=async n=>{var K,q,Y;const c=R.graph.serialize();(K=c.extra||(c.extra={}))[q=M]||(K[q]={}),c.extra[M].deps={models:(o==null?void 0:o.models)??{},images:n??{},nodeRepos:(o==null?void 0:o.nodeRepos)??[]},await t();const D=await R.graphToPrompt(R.graph).then(W=>(c.extra[M].apiPrompt=W.output,W.output)),N=JSON.stringify(c);v(!0);const S=_e(32),P=await((Y=se)==null?void 0:Y.getSetting("cloudHost"));let V;V=Fe();const ce={id:Me(),workflowID:h.id,name:r.current,createTime:Date.now(),api_prompt:JSON.stringify(D),json:N??JSON.stringify(R.graph.serialize())},de=window.location.protocol,ue=window.location.host,pe=`${de}//${ue}`,he=P+`/share_workflow_confirm/${S}?redirectUrl=${pe}`,fe=window.open(he,"Share Workflow","width=800,height=800"),J=W=>{var Q;if(W.origin===P&&W.data==="child_ready"){const me=(Q=_)==null?void 0:Q.curWorkflow;fe.postMessage({workflow:me,version:ce,nodeDefs:V,privacy:a.current},P),window.removeEventListener("message",J)}};window.addEventListener("message",J)},le=async()=>{const n=(o==null?void 0:o.images)??{};if(k){d(!0);const c=Object.values((o==null?void 0:o.images)??{}).map(D=>D.filename);if(c.length){const N=await(await We("/workspace/upload_image",{method:"POST",body:JSON.stringify({images:c})})).json();Object.keys(N).forEach(S=>{n!=null&&n[S]&&(n[S].url=N[S])})}d(!1)}E(n)},F=(U=(B=_)==null?void 0:B.curWorkflow)==null?void 0:U.cloudID;return e.jsxs(ve,{isOpen:!0,onClose:s,size:"lg",children:[e.jsx(ye,{}),e.jsxs(be,{width:["98%","90%","50%"],maxWidth:"600px",children:[e.jsxs(ke,{children:[e.jsxs(oe,{justifyContent:"space-between",children:[e.jsxs("p",{children:['Share "',h==null?void 0:h.name,'"']}),e.jsx(z,{colorScheme:"teal",onClick:le,size:"sm",isDisabled:b,children:b?"Sharing":"Share"})]}),p&&e.jsxs(Le,{fontSize:16,color:"GrayText",fontWeight:400,children:["Share to ",new URL(p).host]})]}),e.jsx(Se,{pb:10,children:e.jsxs(T,{gap:5,children:[F==null?e.jsx(Qe,{options:Te,value:w,onChange:n=>{x(n)}}):e.jsx(Ae,{variant:"outline",borderRadius:"full",width:"fit-content",children:e.jsx(Ge,{privacy:w,showEmoji:!0})}),F&&e.jsxs(A,{spacing:2,color:"teal.400",children:[e.jsxs(Ve,{wordBreak:"break-all",href:p+"/workflow/"+F,isExternal:!0,children:[p+"/workflow/"+F," ",e.jsx(He,{size:20,style:{display:"inline-block",verticalAlign:"middle"}})]}),e.jsx(z,{size:"sm",leftIcon:e.jsx(Je,{size:18}),onClick:()=>{var n,c;O(p+"/workflow/"+((c=(n=_)==null?void 0:n.curWorkflow)==null?void 0:c.cloudID))},children:"Copy link"})]}),e.jsx(ie,{gap:4,onChange:n=>{j(n)},value:I,children:e.jsx(T,{children:e.jsxs(A,{mb:5,alignItems:"center",children:[e.jsx(Oe,{value:i,width:"60%",onFocus:()=>{j("new_version")},onChange:n=>{l(n.target.value)}}),e.jsx(oe,{color:"green",children:e.jsx(re,{colorScheme:"purple",children:"Version Name"})})]})})}),Object.keys((o==null?void 0:o.images)??{}).length>0&&e.jsxs(T,{borderRadius:6,borderWidth:"1px",p:2,children:[e.jsx(Ue,{isChecked:k,onChange:()=>L(!k),fontWeight:"600",children:"Share input images"}),e.jsxs("span",{style:{color:"GrayText"},children:["If enabled your input images will be uploaded and shared to"," ",p]}),k&&e.jsx(Xe,{deps:o??null,setDeps:f,uploadingImage:y})]})]})})]})]})}function oo(){const s=new Date,i=s.getFullYear(),l=String(s.getMonth()+1).padStart(2,"0"),r=String(s.getDate()).padStart(2,"0");return`${i}-${l}-${r}`}export{co as default}; diff --git a/dist/workspace_web/SpotlightSearch-pfa51tE-.js b/dist/workspace_web/SpotlightSearch-pfa51tE-.js new file mode 100644 index 0000000..577d2ed --- /dev/null +++ b/dist/workspace_web/SpotlightSearch-pfa51tE-.js @@ -0,0 +1 @@ +import{b as X,f as L,k as Z,o as $,e as w,r as g,j as n,g as A,Z as q,M as J,O as Q,a0 as ee,h as te}from"./input.js";import{aC as ne,aj as se,X as re,ay as T,ag as G,H as ae,j as oe,h as O,a1 as ie,x as ce,a2 as le,E as ue,k as D}from"./App-Pi18TWng.js";import{u as pe}from"./useDebounceFn-ld478fd0.js";import{I as de}from"./IconSearch-xcUfhAk-.js";import{V as he}from"./chunk-NTCQBYKE-6cj7iDLd.js";var[me,ge]=X({name:"InputGroupStylesContext",errorMessage:`useInputGroupStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),M=L(function(a,u){const r=Z("Input",a),{children:c,className:l,...I}=$(a),x=w("chakra-input__group",l),t={},E=ne(c),o=r.field;E.forEach(s=>{var p,y;r&&(o&&s.type.id==="InputLeftElement"&&(t.paddingStart=(p=o.height)!=null?p:o.h),o&&s.type.id==="InputRightElement"&&(t.paddingEnd=(y=o.height)!=null?y:o.h),s.type.id==="InputRightAddon"&&(t.borderEndRadius=0),s.type.id==="InputLeftAddon"&&(t.borderStartRadius=0))});const f=E.map(s=>{var p,y;const R=se({size:((p=s.props)==null?void 0:p.size)||a.size,variant:((y=s.props)==null?void 0:y.variant)||a.variant});return s.type.id!=="Input"?g.cloneElement(s,R):g.cloneElement(s,Object.assign(R,t,s.props))});return n.jsx(A.div,{className:x,ref:u,__css:{width:"100%",display:"flex",position:"relative",isolation:"isolate",...r.group},"data-group":!0,...I,children:n.jsx(me,{value:r,children:f})})});M.displayName="InputGroup";var Se=A("div",{baseStyle:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",top:"0",zIndex:2}}),C=L(function(a,u){var r,c;const{placement:l="left",...I}=a,x=ge(),t=x.field,o={[l==="left"?"insetStart":"insetEnd"]:"0",width:(r=t==null?void 0:t.height)!=null?r:t==null?void 0:t.h,height:(c=t==null?void 0:t.height)!=null?c:t==null?void 0:t.h,fontSize:t==null?void 0:t.fontSize,...x.element};return n.jsx(Se,{ref:u,__css:o,...I})});C.id="InputElement";C.displayName="InputElement";var P=L(function(a,u){const{className:r,...c}=a,l=w("chakra-input__left-element",r);return n.jsx(C,{ref:u,placement:"left",className:l,...c})});P.id="InputLeftElement";P.displayName="InputLeftElement";var K=L(function(a,u){const{className:r,...c}=a,l=w("chakra-input__right-element",r);return n.jsx(C,{ref:u,placement:"right",className:l,...c})});K.id="InputRightElement";K.displayName="InputRightElement";function Ie(){const{colorMode:S}=q(),{loadWorkflowID:a,setRoute:u}=g.useContext(re),[r,c]=g.useState([]),[l,I,x]=T(""),t=g.useRef([]),[E,o,f]=T([]),[s,p]=g.useState(!1),[y,R,b]=T(0),v=g.useRef({lastPressedKey:"",spotlightSearchShortcutFirstKey:"",spotlightSearchShortcutLastKey:""}),z=()=>{u("root")},_=e=>{a(e.id),z()},H=()=>{const e=r.filter(i=>!!i.name.toLocaleLowerCase().includes(x.current.toLocaleLowerCase()));o(e),R(0),p(!1)},[U,W]=pe(H,300),V=e=>{I(e.target.value),e.target.value?(U(),!s&&p(!0)):(p(!1),W(),o(t.current))},B=()=>s?null:l&&E.length===0?n.jsx(O,{ml:2,children:"No matching results"}):n.jsx(n.Fragment,{children:E.map((e,i)=>n.jsxs(te,{colorScheme:"teal",variant:"ghost",size:"sm",justifyContent:"start",px:2,color:S==="light"?"#1A202C":"rgba(255, 255, 255, 0.92)",onClick:()=>{_(e)},minH:"26px",isActive:i===y,children:[e.name,e.updateTime&&n.jsxs(O,{color:S==="light"?"GrayText":"rgb(255, 255, 255, 0.6)",ml:2,fontSize:"sm",children:["Updated: ",ie(e.updateTime)]})]},e.id))}),Y=async()=>{var k;const e=h=>h.map(m=>({type:"workflow",updateTime:(m==null?void 0:m.updateTime)??Date.now(),id:m.id,name:m.name.replace(/\.json$/,"")}))??[],i=await((k=ce)==null?void 0:k.listAll(le.RECENTLY_OPENED))??[];c(e(i));const d=e(i.slice(0,20));t.current=d,o(d)},N=e=>{R(i=>{const d=i+e;return d<0?f.current.length-1:d>f.current.length-1?0:d})};return g.useEffect(()=>{var k;Y(),(k=D)==null||k.getSetting("shortcuts").then(h=>{var F;const j=(h.openSpotlightSearch??((F=D)==null?void 0:F.defaultSettings.shortcuts.openSpotlightSearch)).split("+");v.current.spotlightSearchShortcutFirstKey=j[0]==="Command"?"Meta":j[0],v.current.spotlightSearchShortcutLastKey=j[j.length-1]});const e=h=>{h.key===v.current.spotlightSearchShortcutFirstKey&&v.current.lastPressedKey===v.current.spotlightSearchShortcutLastKey&&b.current>0&&f.current[b.current]&&_(f.current[b.current])},i=h=>{const m=h.key.toUpperCase();switch(v.current.lastPressedKey=m,m){case"ARROWDOWN":N(1);break;case"ARROWUP":N(-1);break;case"ENTER":_(f.current[b.current]);break}},d=h=>{switch(h.detail.shortcutType){case ue.openSpotlightSearch:N(1);break}};return document.addEventListener("keyup",e),document.addEventListener("keydown",i),window.addEventListener(G,d),()=>{document.removeEventListener("keyup",e),document.removeEventListener("keydown",i),window.removeEventListener(G,d)}},[]),n.jsx(J,{isOpen:!0,onClose:z,size:"xl",children:n.jsxs(Q,{bg:S==="light"?"rgba(255, 255, 255, 0.8)":"rgb(45, 55, 72, 0.8)",backdropFilter:"auto",backdropBlur:"8px",children:[n.jsxs(ae,{spacing:1,px:4,py:2,borderBottom:"1px",borderColor:"gray.400",children:[n.jsx(de,{size:20}),n.jsxs(M,{children:[n.jsx(oe,{value:l,onChange:V,autoFocus:!0,variant:"unstyled",fontSize:18}),s&&n.jsx(K,{h:"27px",children:n.jsx(ee,{size:"sm"})})]})]}),n.jsx(he,{spacing:1,align:"stretch",px:2,py:2,maxHeight:"calc(100vh - 200px)",overflowY:"auto",children:B()})]})})}export{Ie as default}; diff --git a/dist/workspace_web/SpotlightSearch-wRJMVnPo.js b/dist/workspace_web/SpotlightSearch-wRJMVnPo.js deleted file mode 100644 index 4b502a1..0000000 --- a/dist/workspace_web/SpotlightSearch-wRJMVnPo.js +++ /dev/null @@ -1 +0,0 @@ -import{b as $,f as j,l as J,o as Z,h as w,r as g,j as n,g as A,$ as q,M as Q,O as X,U as ee,i as te}from"./input.js";import{aJ as ne,an as se,Z as re,aE as T,ak as G,H as ae,j as oe,h as O,a3 as ie,x as ce,a4 as le,E as ue,k as D}from"./App-eQybp91e.js";import{u as pe}from"./useDebounceFn-ld478fd0.js";import{I as de}from"./IconSearch-3Gq-3maw.js";import{V as he}from"./chunk-NTCQBYKE-a6jE7X_b.js";var[me,ge]=$({name:"InputGroupStylesContext",errorMessage:`useInputGroupStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `}),M=j(function(a,u){const r=J("Input",a),{children:c,className:l,...I}=Z(a),x=w("chakra-input__group",l),t={},E=ne(c),o=r.field;E.forEach(s=>{var p,y;r&&(o&&s.type.id==="InputLeftElement"&&(t.paddingStart=(p=o.height)!=null?p:o.h),o&&s.type.id==="InputRightElement"&&(t.paddingEnd=(y=o.height)!=null?y:o.h),s.type.id==="InputRightAddon"&&(t.borderEndRadius=0),s.type.id==="InputLeftAddon"&&(t.borderStartRadius=0))});const f=E.map(s=>{var p,y;const R=se({size:((p=s.props)==null?void 0:p.size)||a.size,variant:((y=s.props)==null?void 0:y.variant)||a.variant});return s.type.id!=="Input"?g.cloneElement(s,R):g.cloneElement(s,Object.assign(R,t,s.props))});return n.jsx(A.div,{className:x,ref:u,__css:{width:"100%",display:"flex",position:"relative",isolation:"isolate",...r.group},"data-group":!0,...I,children:n.jsx(me,{value:r,children:f})})});M.displayName="InputGroup";var Se=A("div",{baseStyle:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",top:"0",zIndex:2}}),C=j(function(a,u){var r,c;const{placement:l="left",...I}=a,x=ge(),t=x.field,o={[l==="left"?"insetStart":"insetEnd"]:"0",width:(r=t==null?void 0:t.height)!=null?r:t==null?void 0:t.h,height:(c=t==null?void 0:t.height)!=null?c:t==null?void 0:t.h,fontSize:t==null?void 0:t.fontSize,...x.element};return n.jsx(Se,{ref:u,__css:o,...I})});C.id="InputElement";C.displayName="InputElement";var P=j(function(a,u){const{className:r,...c}=a,l=w("chakra-input__left-element",r);return n.jsx(C,{ref:u,placement:"left",className:l,...c})});P.id="InputLeftElement";P.displayName="InputLeftElement";var K=j(function(a,u){const{className:r,...c}=a,l=w("chakra-input__right-element",r);return n.jsx(C,{ref:u,placement:"right",className:l,...c})});K.id="InputRightElement";K.displayName="InputRightElement";function Ie(){const{colorMode:S}=q(),{loadWorkflowID:a,setRoute:u}=g.useContext(re),[r,c]=g.useState([]),[l,I,x]=T(""),t=g.useRef([]),[E,o,f]=T([]),[s,p]=g.useState(!1),[y,R,b]=T(0),v=g.useRef({lastPressedKey:"",spotlightSearchShortcutFirstKey:"",spotlightSearchShortcutLastKey:""}),z=()=>{u("root")},_=e=>{a(e.id),z()},U=()=>{const e=r.filter(i=>!!i.name.toLocaleLowerCase().includes(x.current.toLocaleLowerCase()));o(e),R(0),p(!1)},[H,W]=pe(U,300),V=e=>{I(e.target.value),e.target.value?(H(),!s&&p(!0)):(p(!1),W(),o(t.current))},B=()=>s?null:l&&E.length===0?n.jsx(O,{ml:2,children:"No matching results"}):n.jsx(n.Fragment,{children:E.map((e,i)=>n.jsxs(te,{colorScheme:"teal",variant:"ghost",size:"sm",justifyContent:"start",px:2,color:S==="light"?"#1A202C":"rgba(255, 255, 255, 0.92)",onClick:()=>{_(e)},minH:"26px",isActive:i===y,children:[e.name,e.updateTime&&n.jsxs(O,{color:S==="light"?"GrayText":"rgb(255, 255, 255, 0.6)",ml:2,fontSize:"sm",children:["Updated: ",ie(e.updateTime)]})]},e.id))}),Y=async()=>{var k;const e=h=>h.map(m=>({type:"workflow",updateTime:(m==null?void 0:m.updateTime)??Date.now(),id:m.id,name:m.name.replace(/\.json$/,"")}))??[],i=await((k=ce)==null?void 0:k.listAll(le.RECENTLY_OPENED))??[];c(e(i));const d=e(i.slice(0,20));t.current=d,o(d)},N=e=>{R(i=>{const d=i+e;return d<0?f.current.length-1:d>f.current.length-1?0:d})};return g.useEffect(()=>{var k;Y(),(k=D)==null||k.getSetting("shortcuts").then(h=>{var F;const L=(h.openSpotlightSearch??((F=D)==null?void 0:F.defaultSettings.shortcuts.openSpotlightSearch)).split("+");v.current.spotlightSearchShortcutFirstKey=L[0]==="Command"?"Meta":L[0],v.current.spotlightSearchShortcutLastKey=L[L.length-1]});const e=h=>{h.key===v.current.spotlightSearchShortcutFirstKey&&v.current.lastPressedKey===v.current.spotlightSearchShortcutLastKey&&b.current>0&&f.current[b.current]&&_(f.current[b.current])},i=h=>{const m=h.key.toUpperCase();switch(v.current.lastPressedKey=m,m){case"ARROWDOWN":N(1);break;case"ARROWUP":N(-1);break;case"ENTER":_(f.current[b.current]);break}},d=h=>{switch(h.detail.shortcutType){case ue.openSpotlightSearch:N(1);break}};return document.addEventListener("keyup",e),document.addEventListener("keydown",i),window.addEventListener(G,d),()=>{document.removeEventListener("keyup",e),document.removeEventListener("keydown",i),window.removeEventListener(G,d)}},[]),n.jsx(Q,{isOpen:!0,onClose:z,size:"xl",children:n.jsxs(X,{bg:S==="light"?"rgba(255, 255, 255, 0.8)":"rgb(45, 55, 72, 0.8)",backdropFilter:"auto",backdropBlur:"8px",children:[n.jsxs(ae,{spacing:1,px:4,py:2,borderBottom:"1px",borderColor:"gray.400",children:[n.jsx(de,{size:20}),n.jsxs(M,{children:[n.jsx(oe,{value:l,onChange:V,autoFocus:!0,variant:"unstyled",fontSize:18}),s&&n.jsx(K,{h:"27px",children:n.jsx(ee,{size:"sm"})})]})]}),n.jsx(he,{spacing:1,align:"stretch",px:2,py:2,maxHeight:"calc(100vh - 200px)",overflowY:"auto",children:B()})]})})}export{Ie as default}; diff --git a/dist/workspace_web/chunk-3RSXBRAN-LXNJ9qB5.js b/dist/workspace_web/chunk-3RSXBRAN-1feEpIXZ.js similarity index 92% rename from dist/workspace_web/chunk-3RSXBRAN-LXNJ9qB5.js rename to dist/workspace_web/chunk-3RSXBRAN-1feEpIXZ.js index 8993372..830f855 100644 --- a/dist/workspace_web/chunk-3RSXBRAN-LXNJ9qB5.js +++ b/dist/workspace_web/chunk-3RSXBRAN-1feEpIXZ.js @@ -1 +1 @@ -import{f as x,j as l,g as i,h as b,l as C,o as E,n as I,r as f,a3 as P}from"./input.js";import{ac as z}from"./App-eQybp91e.js";var v=x(function(o,s){const{children:t,placeholder:n,className:r,...a}=o;return l.jsxs(i.select,{...a,ref:s,className:b("chakra-select",r),children:[n&&l.jsx("option",{value:"",children:n}),t]})});v.displayName="SelectField";function F(e,o){const s={},t={};for(const[n,r]of Object.entries(e))o.includes(n)?s[n]=r:t[n]=r;return[s,t]}var H=x((e,o)=>{var s;const t=C("Select",e),{rootProps:n,placeholder:r,icon:a,color:c,height:_,h:d,minH:h,minHeight:y,iconColor:p,iconSize:u,...j}=E(e),[g,N]=F(j,P),m=z(N),k={width:"100%",height:"fit-content",position:"relative",color:c},w={paddingEnd:"2rem",...t.field,_focus:{zIndex:"unset",...(s=t.field)==null?void 0:s._focus}};return l.jsxs(i.div,{className:"chakra-select__wrapper",__css:k,...g,...n,children:[l.jsx(v,{ref:o,height:d??_,minH:h??y,placeholder:r,...m,__css:w,children:e.children}),l.jsx(S,{"data-disabled":I(m.disabled),...(p||c)&&{color:p||c},__css:t.icon,...u&&{fontSize:u},children:a})]})});H.displayName="Select";var M=e=>l.jsx("svg",{viewBox:"0 0 24 24",...e,children:l.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})}),R=i("div",{baseStyle:{position:"absolute",display:"inline-flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",top:"50%",transform:"translateY(-50%)"}}),S=e=>{const{children:o=l.jsx(M,{}),...s}=e,t=f.cloneElement(o,{role:"presentation",className:"chakra-select__icon",focusable:!1,"aria-hidden":!0,style:{width:"1em",height:"1em",color:"currentColor"}});return l.jsx(R,{...s,className:"chakra-select__icon-wrapper",children:f.isValidElement(o)?t:null})};S.displayName="SelectIcon";export{H as S}; +import{f as x,j as l,g as i,e as b,k as C,o as E,l as I,r as f,a3 as P}from"./input.js";import{aa as z}from"./App-Pi18TWng.js";var v=x(function(o,s){const{children:t,placeholder:n,className:r,...a}=o;return l.jsxs(i.select,{...a,ref:s,className:b("chakra-select",r),children:[n&&l.jsx("option",{value:"",children:n}),t]})});v.displayName="SelectField";function F(e,o){const s={},t={};for(const[n,r]of Object.entries(e))o.includes(n)?s[n]=r:t[n]=r;return[s,t]}var H=x((e,o)=>{var s;const t=C("Select",e),{rootProps:n,placeholder:r,icon:a,color:c,height:_,h:d,minH:h,minHeight:y,iconColor:p,iconSize:u,...j}=E(e),[g,N]=F(j,P),m=z(N),k={width:"100%",height:"fit-content",position:"relative",color:c},w={paddingEnd:"2rem",...t.field,_focus:{zIndex:"unset",...(s=t.field)==null?void 0:s._focus}};return l.jsxs(i.div,{className:"chakra-select__wrapper",__css:k,...g,...n,children:[l.jsx(v,{ref:o,height:d??_,minH:h??y,placeholder:r,...m,__css:w,children:e.children}),l.jsx(S,{"data-disabled":I(m.disabled),...(p||c)&&{color:p||c},__css:t.icon,...u&&{fontSize:u},children:a})]})});H.displayName="Select";var M=e=>l.jsx("svg",{viewBox:"0 0 24 24",...e,children:l.jsx("path",{fill:"currentColor",d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"})}),R=i("div",{baseStyle:{position:"absolute",display:"inline-flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",top:"50%",transform:"translateY(-50%)"}}),S=e=>{const{children:o=l.jsx(M,{}),...s}=e,t=f.cloneElement(o,{role:"presentation",className:"chakra-select__icon",focusable:!1,"aria-hidden":!0,style:{width:"1em",height:"1em",color:"currentColor"}});return l.jsx(R,{...s,className:"chakra-select__icon-wrapper",children:f.isValidElement(o)?t:null})};S.displayName="SelectIcon";export{H as S}; diff --git a/dist/workspace_web/chunk-7D6N5TE5-ZfhYDM9i.js b/dist/workspace_web/chunk-7D6N5TE5-ZfhYDM9i.js new file mode 100644 index 0000000..c8dfa24 --- /dev/null +++ b/dist/workspace_web/chunk-7D6N5TE5-ZfhYDM9i.js @@ -0,0 +1 @@ +import{f as ce,j as W,r as i,y as A,g as oe,d as T,x as ye,l as r,q as m,m as re}from"./input.js";import{ae as pe}from"./App-Pi18TWng.js";var z=ce(function(n,t){const{htmlWidth:o,htmlHeight:d,alt:l,...v}=n;return W.jsx("img",{width:o,height:d,ref:t,alt:l,...v})});z.displayName="NativeImage";function Ee(e){const{loading:n,src:t,srcSet:o,onLoad:d,onError:l,crossOrigin:v,sizes:w,ignoreFallback:L}=e,[h,k]=i.useState("pending");i.useEffect(()=>{k(t?"loading":"pending")},[t]);const f=i.useRef(),I=i.useCallback(()=>{if(!t)return;y();const s=new Image;s.src=t,v&&(s.crossOrigin=v),o&&(s.srcset=o),w&&(s.sizes=w),n&&(s.loading=n),s.onload=p=>{y(),k("loaded"),d==null||d(p)},s.onerror=p=>{y(),k("failed"),l==null||l(p)},f.current=s},[t,v,o,w,d,l,n]),y=()=>{f.current&&(f.current.onload=null,f.current.onerror=null,f.current=null)};return A(()=>{if(!L)return h==="loading"&&I(),()=>{y()}},[h,I,L]),L?"loaded":h}var we=(e,n)=>e!=="loaded"&&n==="beforeLoadOrError"||e==="failed"&&n==="onError";function Le(e,n=[]){const t=Object.assign({},e);for(const o of n)o in t&&delete t[o];return t}var Ce=ce(function(n,t){const{fallbackSrc:o,fallback:d,src:l,srcSet:v,align:w,fit:L,loading:h,ignoreFallback:k,crossOrigin:f,fallbackStrategy:I="beforeLoadOrError",referrerPolicy:y,...s}=n,p=o!==void 0||d!==void 0,P=h!=null||k||!p,B=Ee({...n,crossOrigin:f,ignoreFallback:P}),K=we(B,I),D={ref:t,objectFit:L,objectPosition:w,...P?s:Le(s,["onError","onLoad"])};return K?d||W.jsx(oe.img,{as:z,className:"chakra-image__placeholder",src:o,...D}):W.jsx(oe.img,{as:z,src:l,srcSet:v,crossOrigin:f,loading:h,referrerPolicy:y,className:"chakra-image",...D})});Ce.displayName="Image";var Ie={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},Fe=()=>typeof document<"u",se=!1,M=null,C=!1,$=!1,G=new Set;function J(e,n){G.forEach(t=>t(e,n))}var Se=typeof window<"u"&&window.navigator!=null?/^Mac/.test(window.navigator.platform):!1;function Pe(e){return!(e.metaKey||!Se&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function ie(e){C=!0,Pe(e)&&(M="keyboard",J("keyboard",e))}function S(e){if(M="pointer",e.type==="mousedown"||e.type==="pointerdown"){C=!0;const n=e.composedPath?e.composedPath()[0]:e.target;let t=!1;try{t=n.matches(":focus-visible")}catch{}if(t)return;J("pointer",e)}}function De(e){return e.mozInputSource===0&&e.isTrusted?!0:e.detail===0&&!e.pointerType}function Re(e){De(e)&&(C=!0,M="virtual")}function xe(e){e.target===window||e.target===document||(!C&&!$&&(M="virtual",J("virtual",e)),C=!1,$=!1)}function Me(){C=!1,$=!0}function le(){return M!=="pointer"}function Be(){if(!Fe()||se)return;const{focus:e}=HTMLElement.prototype;HTMLElement.prototype.focus=function(...t){C=!0,e.apply(this,t)},document.addEventListener("keydown",ie,!0),document.addEventListener("keyup",ie,!0),document.addEventListener("click",Re,!0),window.addEventListener("focus",xe,!0),window.addEventListener("blur",Me,!1),typeof PointerEvent<"u"?(document.addEventListener("pointerdown",S,!0),document.addEventListener("pointermove",S,!0),document.addEventListener("pointerup",S,!0)):(document.addEventListener("mousedown",S,!0),document.addEventListener("mousemove",S,!0),document.addEventListener("mouseup",S,!0)),se=!0}function Ke(e){Be(),e(le());const n=()=>e(le());return G.add(n),()=>{G.delete(n)}}function Oe(e,n=[]){const t=Object.assign({},e);for(const o of n)o in t&&delete t[o];return t}function Ue(e={}){const n=pe(e),{isDisabled:t,isReadOnly:o,isRequired:d,isInvalid:l,id:v,onBlur:w,onFocus:L,"aria-describedby":h}=n,{defaultChecked:k,isChecked:f,isFocusable:I,onChange:y,isIndeterminate:s,name:p,value:P,tabIndex:B=void 0,"aria-label":K,"aria-labelledby":D,"aria-invalid":U,...de}=e,V=Oe(de,["isDisabled","isReadOnly","isRequired","isInvalid","id","onBlur","onFocus","aria-describedby"]),q=T(y),Q=T(w),X=T(L),[O,ue]=i.useState(!1),[E,j]=i.useState(!1),[R,Y]=i.useState(!1),[x,F]=i.useState(!1);i.useEffect(()=>Ke(ue),[]);const b=i.useRef(null),[Z,fe]=i.useState(!0),[me,N]=i.useState(!!k),_=f!==void 0,c=_?f:me,ee=i.useCallback(a=>{if(o||t){a.preventDefault();return}_||N(c?a.target.checked:s?!0:a.target.checked),q==null||q(a)},[o,t,c,_,s,q]);A(()=>{b.current&&(b.current.indeterminate=!!s)},[s]),ye(()=>{t&&j(!1)},[t,j]),A(()=>{const a=b.current;if(!(a!=null&&a.form))return;const u=()=>{N(!!k)};return a.form.addEventListener("reset",u),()=>{var g;return(g=a.form)==null?void 0:g.removeEventListener("reset",u)}},[]);const te=t&&!I,ae=i.useCallback(a=>{a.key===" "&&F(!0)},[F]),ne=i.useCallback(a=>{a.key===" "&&F(!1)},[F]);A(()=>{if(!b.current)return;b.current.checked!==c&&N(b.current.checked)},[b.current]);const ve=i.useCallback((a={},u=null)=>{const g=H=>{E&&H.preventDefault(),F(!0)};return{...a,ref:u,"data-active":r(x),"data-hover":r(R),"data-checked":r(c),"data-focus":r(E),"data-focus-visible":r(E&&O),"data-indeterminate":r(s),"data-disabled":r(t),"data-invalid":r(l),"data-readonly":r(o),"aria-hidden":!0,onMouseDown:m(a.onMouseDown,g),onMouseUp:m(a.onMouseUp,()=>F(!1)),onMouseEnter:m(a.onMouseEnter,()=>Y(!0)),onMouseLeave:m(a.onMouseLeave,()=>Y(!1))}},[x,c,t,E,O,R,s,l,o]),be=i.useCallback((a={},u=null)=>({...a,ref:u,"data-active":r(x),"data-hover":r(R),"data-checked":r(c),"data-focus":r(E),"data-focus-visible":r(E&&O),"data-indeterminate":r(s),"data-disabled":r(t),"data-invalid":r(l),"data-readonly":r(o)}),[x,c,t,E,O,R,s,l,o]),ge=i.useCallback((a={},u=null)=>({...V,...a,ref:re(u,g=>{g&&fe(g.tagName==="LABEL")}),onClick:m(a.onClick,()=>{var g;Z||((g=b.current)==null||g.click(),requestAnimationFrame(()=>{var H;(H=b.current)==null||H.focus({preventScroll:!0})}))}),"data-disabled":r(t),"data-checked":r(c),"data-invalid":r(l)}),[V,t,c,l,Z]),he=i.useCallback((a={},u=null)=>({...a,ref:re(b,u),type:"checkbox",name:p,value:P,id:v,tabIndex:B,onChange:m(a.onChange,ee),onBlur:m(a.onBlur,Q,()=>j(!1)),onFocus:m(a.onFocus,X,()=>j(!0)),onKeyDown:m(a.onKeyDown,ae),onKeyUp:m(a.onKeyUp,ne),required:d,checked:c,disabled:te,readOnly:o,"aria-label":K,"aria-labelledby":D,"aria-invalid":U?!!U:l,"aria-describedby":h,"aria-disabled":t,style:Ie}),[p,P,v,ee,Q,X,ae,ne,d,c,te,o,K,D,U,l,h,t,B]),ke=i.useCallback((a={},u=null)=>({...a,ref:u,onMouseDown:m(a.onMouseDown,je),"data-disabled":r(t),"data-checked":r(c),"data-invalid":r(l)}),[c,t,l]);return{state:{isInvalid:l,isFocused:E,isChecked:c,isActive:x,isHovered:R,isIndeterminate:s,isDisabled:t,isReadOnly:o,isRequired:d},getRootProps:ge,getCheckboxProps:ve,getIndicatorProps:be,getInputProps:he,getLabelProps:ke,htmlProps:V}}function je(e){e.preventDefault(),e.stopPropagation()}export{Ce as I,Ue as u}; diff --git a/dist/workspace_web/chunk-7D6N5TE5-lFR77IBa.js b/dist/workspace_web/chunk-7D6N5TE5-lFR77IBa.js deleted file mode 100644 index 77cd896..0000000 --- a/dist/workspace_web/chunk-7D6N5TE5-lFR77IBa.js +++ /dev/null @@ -1 +0,0 @@ -import{ai as me}from"./App-eQybp91e.js";import{d as B,r as o,e as I,y as ye,n as a,s as l,m as Z}from"./input.js";var he={border:"0",clip:"rect(0, 0, 0, 0)",height:"1px",width:"1px",margin:"-1px",padding:"0",overflow:"hidden",whiteSpace:"nowrap",position:"absolute"},pe=()=>typeof document<"u",$=!1,w=null,m=!1,R=!1,K=new Set;function x(e,u){K.forEach(n=>n(e,u))}var ke=typeof window<"u"&&window.navigator!=null?/^Mac/.test(window.navigator.platform):!1;function we(e){return!(e.metaKey||!ke&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function ee(e){m=!0,we(e)&&(w="keyboard",x("keyboard",e))}function h(e){if(w="pointer",e.type==="mousedown"||e.type==="pointerdown"){m=!0;const u=e.composedPath?e.composedPath()[0]:e.target;let n=!1;try{n=u.matches(":focus-visible")}catch{}if(n)return;x("pointer",e)}}function Ee(e){return e.mozInputSource===0&&e.isTrusted?!0:e.detail===0&&!e.pointerType}function Ce(e){Ee(e)&&(m=!0,w="virtual")}function ge(e){e.target===window||e.target===document||(!m&&!R&&(w="virtual",x("virtual",e)),m=!1,R=!1)}function Le(){m=!1,R=!0}function te(){return w!=="pointer"}function Pe(){if(!pe()||$)return;const{focus:e}=HTMLElement.prototype;HTMLElement.prototype.focus=function(...n){m=!0,e.apply(this,n)},document.addEventListener("keydown",ee,!0),document.addEventListener("keyup",ee,!0),document.addEventListener("click",Ce,!0),window.addEventListener("focus",ge,!0),window.addEventListener("blur",Le,!1),typeof PointerEvent<"u"?(document.addEventListener("pointerdown",h,!0),document.addEventListener("pointermove",h,!0),document.addEventListener("pointerup",h,!0)):(document.addEventListener("mousedown",h,!0),document.addEventListener("mousemove",h,!0),document.addEventListener("mouseup",h,!0)),$=!0}function Se(e){Pe(),e(te());const u=()=>e(te());return K.add(u),()=>{K.delete(u)}}function Fe(e,u=[]){const n=Object.assign({},e);for(const s of u)s in n&&delete n[s];return n}function Re(e={}){const u=me(e),{isDisabled:n,isReadOnly:s,isRequired:P,isInvalid:d,id:A,onBlur:ne,onFocus:ae,"aria-describedby":H}=u,{defaultChecked:U,isChecked:V,isFocusable:oe,onChange:re,isIndeterminate:v,name:q,value:O,tabIndex:T=void 0,"aria-label":W,"aria-labelledby":_,"aria-invalid":S,...se}=e,F=Fe(se,["isDisabled","isReadOnly","isRequired","isInvalid","id","onBlur","onFocus","aria-describedby"]),D=B(re),j=B(ne),z=B(ae),[E,ie]=o.useState(!1),[b,C]=o.useState(!1),[p,G]=o.useState(!1),[k,y]=o.useState(!1);o.useEffect(()=>Se(ie),[]);const c=o.useRef(null),[N,ue]=o.useState(!0),[de,g]=o.useState(!!U),M=V!==void 0,r=M?V:de,J=o.useCallback(t=>{if(s||n){t.preventDefault();return}M||g(r?t.target.checked:v?!0:t.target.checked),D==null||D(t)},[s,n,r,M,v,D]);I(()=>{c.current&&(c.current.indeterminate=!!v)},[v]),ye(()=>{n&&C(!1)},[n,C]),I(()=>{const t=c.current;if(!(t!=null&&t.form))return;const i=()=>{g(!!U)};return t.form.addEventListener("reset",i),()=>{var f;return(f=t.form)==null?void 0:f.removeEventListener("reset",i)}},[]);const Q=n&&!oe,X=o.useCallback(t=>{t.key===" "&&y(!0)},[y]),Y=o.useCallback(t=>{t.key===" "&&y(!1)},[y]);I(()=>{if(!c.current)return;c.current.checked!==r&&g(c.current.checked)},[c.current]);const le=o.useCallback((t={},i=null)=>{const f=L=>{b&&L.preventDefault(),y(!0)};return{...t,ref:i,"data-active":a(k),"data-hover":a(p),"data-checked":a(r),"data-focus":a(b),"data-focus-visible":a(b&&E),"data-indeterminate":a(v),"data-disabled":a(n),"data-invalid":a(d),"data-readonly":a(s),"aria-hidden":!0,onMouseDown:l(t.onMouseDown,f),onMouseUp:l(t.onMouseUp,()=>y(!1)),onMouseEnter:l(t.onMouseEnter,()=>G(!0)),onMouseLeave:l(t.onMouseLeave,()=>G(!1))}},[k,r,n,b,E,p,v,d,s]),ce=o.useCallback((t={},i=null)=>({...t,ref:i,"data-active":a(k),"data-hover":a(p),"data-checked":a(r),"data-focus":a(b),"data-focus-visible":a(b&&E),"data-indeterminate":a(v),"data-disabled":a(n),"data-invalid":a(d),"data-readonly":a(s)}),[k,r,n,b,E,p,v,d,s]),fe=o.useCallback((t={},i=null)=>({...F,...t,ref:Z(i,f=>{f&&ue(f.tagName==="LABEL")}),onClick:l(t.onClick,()=>{var f;N||((f=c.current)==null||f.click(),requestAnimationFrame(()=>{var L;(L=c.current)==null||L.focus({preventScroll:!0})}))}),"data-disabled":a(n),"data-checked":a(r),"data-invalid":a(d)}),[F,n,r,d,N]),ve=o.useCallback((t={},i=null)=>({...t,ref:Z(c,i),type:"checkbox",name:q,value:O,id:A,tabIndex:T,onChange:l(t.onChange,J),onBlur:l(t.onBlur,j,()=>C(!1)),onFocus:l(t.onFocus,z,()=>C(!0)),onKeyDown:l(t.onKeyDown,X),onKeyUp:l(t.onKeyUp,Y),required:P,checked:r,disabled:Q,readOnly:s,"aria-label":W,"aria-labelledby":_,"aria-invalid":S?!!S:d,"aria-describedby":H,"aria-disabled":n,style:he}),[q,O,A,J,j,z,X,Y,P,r,Q,s,W,_,S,d,H,n,T]),be=o.useCallback((t={},i=null)=>({...t,ref:i,onMouseDown:l(t.onMouseDown,De),"data-disabled":a(n),"data-checked":a(r),"data-invalid":a(d)}),[r,n,d]);return{state:{isInvalid:d,isFocused:b,isChecked:r,isActive:k,isHovered:p,isIndeterminate:v,isDisabled:n,isReadOnly:s,isRequired:P},getRootProps:fe,getCheckboxProps:le,getIndicatorProps:ce,getInputProps:ve,getLabelProps:be,htmlProps:F}}function De(e){e.preventDefault(),e.stopPropagation()}export{Re as u}; diff --git a/dist/workspace_web/chunk-JARCRF6W-OjDz07lE.js b/dist/workspace_web/chunk-JARCRF6W-OjDz07lE.js deleted file mode 100644 index a1b57f7..0000000 --- a/dist/workspace_web/chunk-JARCRF6W-OjDz07lE.js +++ /dev/null @@ -1 +0,0 @@ -import{b as D,r as p,j as t,g as i,a0 as v,f as j,l as T,o as B,H as E,h as $}from"./input.js";import{u as z}from"./chunk-7D6N5TE5-lFR77IBa.js";var[Z,F]=D({name:"CheckboxGroupContext",strict:!1});function M(o){const[s,n]=p.useState(o),[e,r]=p.useState(!1);return o!==s&&(r(!0),n(o)),e}function W(o){return t.jsx(i.svg,{width:"1.2em",viewBox:"0 0 12 10",style:{fill:"none",strokeWidth:2,stroke:"currentColor",strokeDasharray:16},...o,children:t.jsx("polyline",{points:"1.5 6 4.5 9 10.5 1"})})}function X(o){return t.jsx(i.svg,{width:"1.2em",viewBox:"0 0 24 24",style:{stroke:"currentColor",strokeWidth:4},...o,children:t.jsx("line",{x1:"21",x2:"3",y1:"12",y2:"12"})})}function H(o){const{isIndeterminate:s,isChecked:n,...e}=o,r=s?X:W;return n||s?t.jsx(i.div,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:t.jsx(r,{...e})}):null}var L={display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",userSelect:"none",flexShrink:0},O={cursor:"pointer",display:"inline-flex",alignItems:"center",verticalAlign:"top",position:"relative"},q=v({from:{opacity:0,strokeDashoffset:16,transform:"scale(0.95)"},to:{opacity:1,strokeDashoffset:0,transform:"scale(1)"}}),J=v({from:{opacity:0},to:{opacity:1}}),K=v({from:{transform:"scaleX(0.65)"},to:{transform:"scaleX(1)"}}),Q=j(function(s,n){const e=F(),r={...e,...s},a=T("Checkbox",r),c=B(s),{spacing:x="0.5rem",className:C,children:m,iconColor:u,iconSize:d,icon:f=t.jsx(H,{}),isChecked:g,isDisabled:k=e==null?void 0:e.isDisabled,onChange:h,inputProps:w,..._}=c;let y=g;e!=null&&e.value&&c.value&&(y=e.value.includes(c.value));let b=h;e!=null&&e.onChange&&c.value&&(b=E(e.onChange,h));const{state:l,getInputProps:A,getCheckboxProps:S,getLabelProps:G,getRootProps:P}=z({..._,isDisabled:k,isChecked:y,onChange:b}),I=M(l.isChecked),R=p.useMemo(()=>({animation:I?l.isIndeterminate?`${J} 20ms linear, ${K} 200ms linear`:`${q} 200ms linear`:void 0,fontSize:d,color:u,...a.icon}),[u,d,I,l.isIndeterminate,a.icon]),N=p.cloneElement(f,{__css:R,isIndeterminate:l.isIndeterminate,isChecked:l.isChecked});return t.jsxs(i.label,{__css:{...O,...a.container},className:$("chakra-checkbox",C),...P(),children:[t.jsx("input",{className:"chakra-checkbox__input",...A(w,n)}),t.jsx(i.span,{__css:{...L,...a.control},className:"chakra-checkbox__control",...S(),children:N}),m&&t.jsx(i.span,{className:"chakra-checkbox__label",...G(),__css:{marginStart:x,...a.label},children:m})]})});Q.displayName="Checkbox";var U=j(function(s,n){const{templateAreas:e,gap:r,rowGap:a,columnGap:c,column:x,row:C,autoFlow:m,autoRows:u,templateRows:d,autoColumns:f,templateColumns:g,...k}=s,h={display:"grid",gridTemplateAreas:e,gridGap:r,gridRowGap:a,gridColumnGap:c,gridAutoColumns:f,gridColumn:x,gridRow:C,gridAutoFlow:m,gridAutoRows:u,gridTemplateRows:d,gridTemplateColumns:g};return t.jsx(i.div,{ref:n,__css:h,...k})});U.displayName="Grid";export{Q as C,U as G}; diff --git a/dist/workspace_web/chunk-JARCRF6W-sDjzfEGl.js b/dist/workspace_web/chunk-JARCRF6W-sDjzfEGl.js new file mode 100644 index 0000000..7282868 --- /dev/null +++ b/dist/workspace_web/chunk-JARCRF6W-sDjzfEGl.js @@ -0,0 +1 @@ +import{b as D,r as h,j as t,g as i,$ as v,f as j,k as T,o as $,H as B,e as E}from"./input.js";import{u as z}from"./chunk-7D6N5TE5-ZfhYDM9i.js";var[Z,F]=D({name:"CheckboxGroupContext",strict:!1});function M(o){const[s,n]=h.useState(o),[e,r]=h.useState(!1);return o!==s&&(r(!0),n(o)),e}function W(o){return t.jsx(i.svg,{width:"1.2em",viewBox:"0 0 12 10",style:{fill:"none",strokeWidth:2,stroke:"currentColor",strokeDasharray:16},...o,children:t.jsx("polyline",{points:"1.5 6 4.5 9 10.5 1"})})}function X(o){return t.jsx(i.svg,{width:"1.2em",viewBox:"0 0 24 24",style:{stroke:"currentColor",strokeWidth:4},...o,children:t.jsx("line",{x1:"21",x2:"3",y1:"12",y2:"12"})})}function H(o){const{isIndeterminate:s,isChecked:n,...e}=o,r=s?X:W;return n||s?t.jsx(i.div,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:t.jsx(r,{...e})}):null}var L={display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",userSelect:"none",flexShrink:0},O={cursor:"pointer",display:"inline-flex",alignItems:"center",verticalAlign:"top",position:"relative"},q=v({from:{opacity:0,strokeDashoffset:16,transform:"scale(0.95)"},to:{opacity:1,strokeDashoffset:0,transform:"scale(1)"}}),J=v({from:{opacity:0},to:{opacity:1}}),K=v({from:{transform:"scaleX(0.65)"},to:{transform:"scaleX(1)"}}),Q=j(function(s,n){const e=F(),r={...e,...s},a=T("Checkbox",r),c=$(s),{spacing:x="0.5rem",className:C,children:m,iconColor:u,iconSize:d,icon:k=t.jsx(H,{}),isChecked:f,isDisabled:g=e==null?void 0:e.isDisabled,onChange:p,inputProps:w,..._}=c;let y=f;e!=null&&e.value&&c.value&&(y=e.value.includes(c.value));let b=p;e!=null&&e.onChange&&c.value&&(b=B(e.onChange,p));const{state:l,getInputProps:A,getCheckboxProps:S,getLabelProps:G,getRootProps:P}=z({..._,isDisabled:g,isChecked:y,onChange:b}),I=M(l.isChecked),R=h.useMemo(()=>({animation:I?l.isIndeterminate?`${J} 20ms linear, ${K} 200ms linear`:`${q} 200ms linear`:void 0,fontSize:d,color:u,...a.icon}),[u,d,I,l.isIndeterminate,a.icon]),N=h.cloneElement(k,{__css:R,isIndeterminate:l.isIndeterminate,isChecked:l.isChecked});return t.jsxs(i.label,{__css:{...O,...a.container},className:E("chakra-checkbox",C),...P(),children:[t.jsx("input",{className:"chakra-checkbox__input",...A(w,n)}),t.jsx(i.span,{__css:{...L,...a.control},className:"chakra-checkbox__control",...S(),children:N}),m&&t.jsx(i.span,{className:"chakra-checkbox__label",...G(),__css:{marginStart:x,...a.label},children:m})]})});Q.displayName="Checkbox";var U=j(function(s,n){const{templateAreas:e,gap:r,rowGap:a,columnGap:c,column:x,row:C,autoFlow:m,autoRows:u,templateRows:d,autoColumns:k,templateColumns:f,...g}=s,p={display:"grid",gridTemplateAreas:e,gridGap:r,gridRowGap:a,gridColumnGap:c,gridAutoColumns:k,gridColumn:x,gridRow:C,gridAutoFlow:m,gridAutoRows:u,gridTemplateRows:d,gridTemplateColumns:f};return t.jsx(i.div,{ref:n,__css:p,...g})});U.displayName="Grid";export{Q as C,U as G}; diff --git a/dist/workspace_web/chunk-NTCQBYKE-a6jE7X_b.js b/dist/workspace_web/chunk-NTCQBYKE-6cj7iDLd.js similarity index 65% rename from dist/workspace_web/chunk-NTCQBYKE-a6jE7X_b.js rename to dist/workspace_web/chunk-NTCQBYKE-6cj7iDLd.js index b658520..688f95f 100644 --- a/dist/workspace_web/chunk-NTCQBYKE-a6jE7X_b.js +++ b/dist/workspace_web/chunk-NTCQBYKE-6cj7iDLd.js @@ -1 +1 @@ -import{g as t}from"./App-eQybp91e.js";import{f as o,j as s}from"./input.js";var e=o((a,r)=>s.jsx(t,{align:"center",...a,direction:"column",ref:r}));e.displayName="VStack";export{e as V}; +import{g as t}from"./App-Pi18TWng.js";import{f as o,j as s}from"./input.js";var e=o((a,r)=>s.jsx(t,{align:"center",...a,direction:"column",ref:r}));e.displayName="VStack";export{e as V}; diff --git a/dist/workspace_web/chunk-VTV6N5LE-_EaL4yE7.js b/dist/workspace_web/chunk-VTV6N5LE-K9rVd8eY.js similarity index 75% rename from dist/workspace_web/chunk-VTV6N5LE-_EaL4yE7.js rename to dist/workspace_web/chunk-VTV6N5LE-K9rVd8eY.js index 3080b86..67ccc08 100644 --- a/dist/workspace_web/chunk-VTV6N5LE-_EaL4yE7.js +++ b/dist/workspace_web/chunk-VTV6N5LE-K9rVd8eY.js @@ -1 +1 @@ -import{f as l,p as f,o as h,j as e,g as n,h as m,l as y,r as o}from"./input.js";import{u as w}from"./chunk-7D6N5TE5-lFR77IBa.js";var N=l(function(a,i){const s=f("Link",a),{className:c,isExternal:t,...r}=h(a);return e.jsx(n.a,{target:t?"_blank":void 0,rel:t?"noopener":void 0,ref:i,className:m("chakra-link",c),...r,__css:s})});N.displayName="Link";var j=l(function(a,i){const s=y("Switch",a),{spacing:c="0.5rem",children:t,...r}=h(a),{getIndicatorProps:p,getInputProps:u,getCheckboxProps:x,getRootProps:_,getLabelProps:g}=w(r),b=o.useMemo(()=>({display:"inline-block",position:"relative",verticalAlign:"middle",lineHeight:0,...s.container}),[s.container]),S=o.useMemo(()=>({display:"inline-flex",flexShrink:0,justifyContent:"flex-start",boxSizing:"content-box",cursor:"pointer",...s.track}),[s.track]),d=o.useMemo(()=>({userSelect:"none",marginStart:c,...s.label}),[c,s.label]);return e.jsxs(n.label,{..._(),className:m("chakra-switch",a.className),__css:b,children:[e.jsx("input",{className:"chakra-switch__input",...u({},i)}),e.jsx(n.span,{...x(),className:"chakra-switch__track",__css:S,children:e.jsx(n.span,{__css:s.thumb,className:"chakra-switch__thumb",...p()})}),t&&e.jsx(n.span,{className:"chakra-switch__label",...g(),__css:d,children:t})]})});j.displayName="Switch";export{N as L,j as S}; +import{f as l,n as f,o as h,j as e,g as n,e as m,k as y,r as o}from"./input.js";import{u as w}from"./chunk-7D6N5TE5-ZfhYDM9i.js";var N=l(function(a,i){const s=f("Link",a),{className:c,isExternal:t,...r}=h(a);return e.jsx(n.a,{target:t?"_blank":void 0,rel:t?"noopener":void 0,ref:i,className:m("chakra-link",c),...r,__css:s})});N.displayName="Link";var j=l(function(a,i){const s=y("Switch",a),{spacing:c="0.5rem",children:t,...r}=h(a),{getIndicatorProps:u,getInputProps:p,getCheckboxProps:x,getRootProps:_,getLabelProps:g}=w(r),b=o.useMemo(()=>({display:"inline-block",position:"relative",verticalAlign:"middle",lineHeight:0,...s.container}),[s.container]),S=o.useMemo(()=>({display:"inline-flex",flexShrink:0,justifyContent:"flex-start",boxSizing:"content-box",cursor:"pointer",...s.track}),[s.track]),d=o.useMemo(()=>({userSelect:"none",marginStart:c,...s.label}),[c,s.label]);return e.jsxs(n.label,{..._(),className:m("chakra-switch",a.className),__css:b,children:[e.jsx("input",{className:"chakra-switch__input",...p({},i)}),e.jsx(n.span,{...x(),className:"chakra-switch__track",__css:S,children:e.jsx(n.span,{__css:s.thumb,className:"chakra-switch__thumb",...u()})}),t&&e.jsx(n.span,{className:"chakra-switch__label",...g(),__css:d,children:t})]})});j.displayName="Switch";export{N as L,j as S}; diff --git a/dist/workspace_web/civitUtils-8IbIESmj.js b/dist/workspace_web/civitUtils-8IbIESmj.js new file mode 100644 index 0000000..f282d15 --- /dev/null +++ b/dist/workspace_web/civitUtils-8IbIESmj.js @@ -0,0 +1 @@ +import{k as m}from"./App-Pi18TWng.js";const r="WORKSPACE_CIVIT_API_KEY_STORAGE_KEY";function g(){return localStorage.getItem(r)}function h(e){localStorage.setItem(r,e)}function v(e){return`https://civitai.com/api/download/models/${e}`}async function w(e){var s,a,n;try{const l=`https://civitai.com/api/v1/model-versions/by-hash/${e}`,t=await(await fetch(l)).json();let i;if(await((s=m)==null?void 0:s.getSetting("showNsfwModelThumbnail"))===!0)i=(n=(a=t==null?void 0:t.images)==null?void 0:a[0])==null?void 0:n.url;else if(!t.model.nsfw){const o=t.images.find(c=>c.nsfwLevel==1);i=o==null?void 0:o.url}return{modelName:t.model.name,civitModelID:String(t.modelId),civitModelVersionID:String(t.id),imageUrl:i??void 0}}catch{return{}}}export{v as a,w as f,g,h as s}; diff --git a/dist/workspace_web/input.js b/dist/workspace_web/input.js index 3c8e16f..37b2696 100644 --- a/dist/workspace_web/input.js +++ b/dist/workspace_web/input.js @@ -679,10 +679,10 @@ Error generating stack: `+i.message+` } ${aB} - `}),zw=document.createElement("div");document.body.append(zw);const lB=Ar.lazy(()=>Xk(()=>import("./App-eQybp91e.js").then(e=>e.aT),__vite__mapDeps([0,1])).then(({default:e})=>({default:e}))),uB={hide:-1,auto:"auto",base:0,docked:10,dropdown:1e7,sticky:11e6,banner:12e6,overlay:13e6,modal:14e6,popover:15e6,skipLink:16e6,toast:17e6,tooltip:18e6},cB=Pz({zIndices:uB,components:{Card:{baseStyle:e=>({container:{backgroundColor:e.colorMode==="dark"?"#171B21":"#F6F8FA"}})}}});gd.createRoot(zw).render(E.jsx(Ar.StrictMode,{children:E.jsxs(BI,{resetCSS:!1,disableGlobalStyle:!0,theme:cB,children:[E.jsx(sB,{scope:".workspace_manager"}),E.jsx(DP,{initialColorMode:"dark"}),E.jsx(iB,{children:E.jsx(S.Suspense,{children:E.jsx(lB,{})})})]})}));const Hf=document.body,dB={attributes:!0,attributeFilter:["class"]},fB=function(e,t){const r=document.documentElement;r.style.colorScheme==="dark"&&r.style.removeProperty("color-scheme");for(const n of e)if(n.type==="attributes"&&n.attributeName==="class")for(const o of Hf.classList)o.includes("chakra")&&Hf.classList.remove(o)},hB=new MutationObserver(fB);hB.observe(Hf,dB);export{Qh as $,PB as A,CB as B,TB as C,_B as D,TP as E,lr as F,oi as G,vB as H,Ya as I,Ap as J,yB as K,Ka as L,yw as M,Ew as N,_w as O,ja as P,Tw as Q,Aw as R,$w as S,Pw as T,Tp as U,xb as V,EB as W,os as X,Ar as Y,pB as Z,Xk as _,kB as a,vP as a0,rB as a1,nB as a2,gB as a3,mn as b,wB as c,i3 as d,Bl as e,pt as f,_e as g,Be as h,Mx as i,E as j,SB as k,Xb as l,If as m,_v as n,Iu as o,Bu as p,mB as q,S as r,Ei as s,Gf as t,IP as u,uw as v,bB as w,Kt as x,yg as y,uO as z}; + `}),zw=document.createElement("div");document.body.append(zw);const lB=Ar.lazy(()=>Xk(()=>import("./App-Pi18TWng.js").then(e=>e.aJ),__vite__mapDeps([0,1])).then(({default:e})=>({default:e}))),uB={hide:-1,auto:"auto",base:0,docked:10,dropdown:1e7,sticky:11e6,banner:12e6,overlay:13e6,modal:14e6,popover:15e6,skipLink:16e6,toast:17e6,tooltip:18e6},cB=Pz({config:{initialColorMode:"dark",useSystemColorMode:!1},zIndices:uB,components:{Card:{baseStyle:e=>({container:{backgroundColor:e.colorMode==="dark"?"#171B21":"#F6F8FA"}})}}});gd.createRoot(zw).render(E.jsx(Ar.StrictMode,{children:E.jsxs(BI,{resetCSS:!1,disableGlobalStyle:!0,theme:cB,children:[E.jsx(sB,{scope:".workspace_manager"}),E.jsx(DP,{initialColorMode:"dark"}),E.jsx(iB,{children:E.jsx(S.Suspense,{children:E.jsx(lB,{})})})]})}));const Hf=document.body,dB={attributes:!0,attributeFilter:["class"]},fB=function(e,t){const r=document.documentElement;r.style.colorScheme==="dark"&&r.style.removeProperty("color-scheme");for(const n of e)if(n.type==="attributes"&&n.attributeName==="class")for(const o of Hf.classList)o.includes("chakra")&&Hf.classList.remove(o)},hB=new MutationObserver(fB);hB.observe(Hf,dB);export{vP as $,PB as A,CB as B,TB as C,_B as D,TP as E,lr as F,oi as G,vB as H,Ya as I,Ap as J,yB as K,Ka as L,yw as M,Ew as N,_w as O,ja as P,Tw as Q,Aw as R,$w as S,Pw as T,xb as U,EB as V,os as W,Ar as X,pB as Y,Qh as Z,Xk as _,kB as a,Tp as a0,rB as a1,nB as a2,gB as a3,mn as b,wB as c,i3 as d,Be as e,pt as f,_e as g,Mx as h,SB as i,E as j,Xb as k,_v as l,If as m,Bu as n,Iu as o,mB as p,Ei as q,S as r,Gf as s,uw as t,IP as u,bB as v,Kt as w,yg as x,Bl as y,uO as z}; function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["workspace_web/App-eQybp91e.js","workspace_web/assets/App-JXePnJiV.css"] + __vite__mapDeps.viteFileDeps = ["workspace_web/App-Pi18TWng.js","workspace_web/assets/App-JXePnJiV.css"] } return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) } \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..cdb6763 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +send2trash diff --git a/service/media_service.py b/service/media_service.py index 5cfe256..6281380 100644 --- a/service/media_service.py +++ b/service/media_service.py @@ -9,7 +9,7 @@ from .model_manager.model_preview import get_thumbnail_for_image_file image_extensions = ['.jpg', '.jpeg', '.png', '.gif', '.webp'] video_extensions = ['.mp4', '.mov', '.avi', '.webm', '.mkv'] -API_URL = 'https://www.nodecafe.org/api/image/upload' +API_URL = 'https://www.nodecafe.co/api/image/upload' def view_media(filename, isPreview = False, isInput = False): if not filename: return web.Response(status=404) diff --git a/service/twoway_sync_folder_service.py b/service/twoway_sync_folder_service.py index efdc7d0..e14a81a 100644 --- a/service/twoway_sync_folder_service.py +++ b/service/twoway_sync_folder_service.py @@ -5,6 +5,10 @@ import os from pathlib import Path import server from .db_service import get_my_workflows_dir +try: + from send2trash import send2trash +except ImportError: + send2trash = None @server.PromptServer.instance.routes.post('/workspace/folder/create') async def create_folder(request): @@ -31,7 +35,11 @@ def delete_folder_sync(reqJson): folder_path = reqJson.get('path') folder_path = os.path.join(get_my_workflows_dir(), folder_path) try: - shutil.rmtree(folder_path) + if send2trash: + send2trash(folder_path) + else: + shutil.rmtree(folder_path) + print("❌⛔️send2trash is not available. Deleting file permanently. Please `pip install send2trash`") return {"success": True} except Exception as e: return {"success": False, "error": str(e)} diff --git a/ui/src/App.tsx b/ui/src/App.tsx index a98dc5d..ce3c1ef 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -157,7 +157,7 @@ export default function App() { if (id) { const flow = await workflowsTable?.get(id); flow && setCurFlowIDAndName(flow); - if (flow && flow.json != latestWf) { + if (!flow?.saveLock && flow && flow.json != latestWf) { setIsDirty(true); } } @@ -167,47 +167,45 @@ export default function App() { } fetchApi("/workspace/deduplicate_workflow_ids"); const twoway = await userSettingsTable?.getSetting("twoWaySync"); - !twoway && - indexdb.cache.get(UPGRADE_TO_2WAY_SYNC_KEY).then(async (value) => { - if (value?.value !== "true") { - const workflowsCount = await indexdb.workflows.count(); - if (workflowsCount == 0) { - // empty workflows, enable 2way sync - await userSettingsTable?.upsert({ twoWaySync: true }); - await indexdb.cache.put({ - id: UPGRADE_TO_2WAY_SYNC_KEY, - value: "true", - }); - return; - } - const myWorkflowsDir = - await userSettingsTable?.getSetting("myWorkflowsDir"); - showDialog( - , - [ - { - label: "I have downloaded all my workflows and ready to enable", - onClick: async () => { - await userSettingsTable?.upsert({ twoWaySync: true }); - if (await userSettingsTable?.getSetting("twoWaySync")) { - indexdb.cache.put({ - id: UPGRADE_TO_2WAY_SYNC_KEY, - value: "true", - }); - location.reload(); - } - }, - colorScheme: "red", - }, - ], - { - closeOnOverlayClick: false, + + if (!twoway) { + const workflowsCount = await indexdb.workflows.count(); + if (workflowsCount == 0) { + // empty workflows, enable 2way sync + await userSettingsTable?.upsert({ twoWaySync: true }); + await indexdb.cache.put({ + id: UPGRADE_TO_2WAY_SYNC_KEY, + value: "true", + }); + return; + } + const myWorkflowsDir = + await userSettingsTable?.getSetting("myWorkflowsDir"); + showDialog( + , + [ + { + label: "I have downloaded all my workflows and ready to enable", + onClick: async () => { + await userSettingsTable?.upsert({ twoWaySync: true }); + if (await userSettingsTable?.getSetting("twoWaySync")) { + indexdb.cache.put({ + id: UPGRADE_TO_2WAY_SYNC_KEY, + value: "true", + }); + location.reload(); + } }, - ); - } - }); + colorScheme: "red", + }, + ], + { + closeOnOverlayClick: false, + }, + ); + } }; const loadWorkflowIDImpl = async (id: string, versionID?: string | null) => { diff --git a/ui/src/components/DropdownTitle.tsx b/ui/src/components/DropdownTitle.tsx index 6e3e5ca..1783d75 100644 --- a/ui/src/components/DropdownTitle.tsx +++ b/ui/src/components/DropdownTitle.tsx @@ -44,7 +44,6 @@ import CreateVersionDialog from "./CreateVersionDialog"; import HoverMenu from "./HoverMenu"; const ShareDialog = lazy(() => import("../share/ShareDialog")); import { TOPBAR_BUTTON_HEIGHT } from "../const"; -import DownloadSpaceJsonDialog from "../spacejson/DownloadSpaceJsonDialog"; import { downloadJsonFile } from "../utils/downloadJsonFile"; import { SharedTopbarButton } from "../share/SharedTopbarButton"; import { app } from "../utils/comfyapp"; @@ -186,13 +185,6 @@ export default function DropdownTitle() { > Versions History - {/* setRoute("downloadSpaceJson")} - icon={} - iconSpacing={1} - > - Save runnable workflow🧪 - */} setRoute("share")} icon={} @@ -212,7 +204,6 @@ export default function DropdownTitle() { {route == "versionHistory" && ( setRoute("root")} /> )} - {route == "downloadSpaceJson" && } {route === "saveAsModal" && ( diff --git a/ui/src/components/EditFlowName.tsx b/ui/src/components/EditFlowName.tsx index 52a003e..7173b43 100644 --- a/ui/src/components/EditFlowName.tsx +++ b/ui/src/components/EditFlowName.tsx @@ -81,7 +81,7 @@ export default function EditFlowName({ as="div" color="white" onClick={startEdit} - maxW={200} + maxW={160} fontWeight={500} whiteSpace="nowrap" overflow="hidden" diff --git a/ui/src/db-tables/ChangelogsTable.ts b/ui/src/db-tables/ChangelogsTable.ts index 36b3b19..47dca19 100644 --- a/ui/src/db-tables/ChangelogsTable.ts +++ b/ui/src/db-tables/ChangelogsTable.ts @@ -44,9 +44,8 @@ export class ChangelogsTable extends TableBase { createTime: Date.now(), isAutoSave: input.isAutoSave, }; - await this.deleteLogsExceedLimit(input.workflowID); await indexdb.changelogs.add(change); - // this.saveDiskDB(); // its not that important to save to disk for changelog table + await this.deleteLogsExceedLimit(input.workflowID); return change; } async deleteLogsExceedLimit(workflowID: string) { diff --git a/ui/src/db-tables/DiskFileUtils.ts b/ui/src/db-tables/DiskFileUtils.ts index fefac3f..9f80ff3 100644 --- a/ui/src/db-tables/DiskFileUtils.ts +++ b/ui/src/db-tables/DiskFileUtils.ts @@ -1,59 +1,6 @@ -import { deleteFile, updateFile } from "../Api"; import { foldersTable, workflowsTable, userSettingsTable } from "./WorkspaceDB"; -import { - COMFYSPACE_TRACKING_FIELD_NAME, - LEGACY_COMFYSPACE_TRACKING_FIELD_NAME, -} from "../const"; -import { toFileNameFriendly } from "../utils"; -import { Folder, Workflow } from "../types/dbTypes"; import { TwowayFolderSyncAPI } from "../apis/TwowaySyncFolderApi"; -export async function saveJsonFileMyWorkflows(workflow: Workflow) { - const file_path = await generateFilePath(workflow); - if (file_path == null) { - return; - } - const fullPath = await generateFilePathAbsolute(workflow); - await workflowsTable?.updateMetaInfo(workflow.id, { - filePath: fullPath ?? undefined, - }); - const json = workflow.json; - const flow = JSON.parse(json); - flow.extra[COMFYSPACE_TRACKING_FIELD_NAME] = { - id: workflow.id, - name: workflow.name, - }; - delete flow.extra[LEGACY_COMFYSPACE_TRACKING_FIELD_NAME]; - - await updateFile(file_path, JSON.stringify(flow)); -} - -export async function deleteJsonFileMyWorkflows(workflow: Workflow) { - if (workflow.name == null) { - return; - } - const file_path = await generateFilePath(workflow); - file_path != null && deleteFile(file_path); -} - -export async function generateFilePath( - workflow: Workflow, -): Promise { - let filePath = toFileNameFriendly(workflow.name) + ".json"; - let curFolderID = workflow.parentFolderID; - while (curFolderID != null) { - const folder = await foldersTable?.get(curFolderID); - if (folder == null) { - break; - } - const folderName = folder.name; - filePath = `${folderName}/${filePath}`; - curFolderID = folder.parentFolderID ?? undefined; - } - - return filePath ?? null; -} - export async function genFolderRelPath( folderId: string | null, ): Promise { @@ -71,46 +18,6 @@ export async function genFolderRelPath( return filePath; } -export async function generateFilePathAbsolute( - workflow: Workflow, -): Promise { - const subPath = await generateFilePath(workflow); - let myWorkflowsDir = await userSettingsTable?.getSetting("myWorkflowsDir"); - if (!myWorkflowsDir) { - console.error("myWorkflowsDir is not set"); - return null; - } - if (!myWorkflowsDir.endsWith("/")) { - myWorkflowsDir = myWorkflowsDir + "/"; - } - return myWorkflowsDir + subPath; -} - -export async function generateFolderPath(id: string): Promise { - const folder = await foldersTable?.get(id); - let parentFolderID = folder?.parentFolderID; - let folderPath = folder?.name; - while (parentFolderID) { - const folder = await foldersTable?.get(parentFolderID); - if (folder == null) { - break; - } - folderPath = `${folder.name}/${folderPath}`; - parentFolderID = folder.parentFolderID ?? undefined; - } - - let myWorkflowsDir = await userSettingsTable?.getSetting("myWorkflowsDir"); - - if (!myWorkflowsDir) { - console.error("myWorkflowsDir is not set"); - return null; - } - - if (!myWorkflowsDir.endsWith("/")) { - myWorkflowsDir = myWorkflowsDir + "/"; - } - return myWorkflowsDir + folderPath; -} export async function getFileCountInFolder(folderId: string): Promise { const twoWaySyncEnabled = await userSettingsTable?.getSetting("twoWaySync"); diff --git a/ui/src/db-tables/MediaTable.ts b/ui/src/db-tables/MediaTable.ts index fd132e8..6ca05ef 100644 --- a/ui/src/db-tables/MediaTable.ts +++ b/ui/src/db-tables/MediaTable.ts @@ -2,7 +2,6 @@ import { Table, workflowsTable } from "./WorkspaceDB"; import { TableBase } from "./TableBase"; import { Media } from "../types/dbTypes"; import { indexdb } from "./indexdb"; -import { getMetadataFromUrl } from "../gallery/utils.ts"; export class MediaTable extends TableBase { static readonly TABLE_NAME: Table = "media"; @@ -25,20 +24,11 @@ export class MediaTable extends TableBase { const format = input.localPath.split(".").pop(); if (format == null) return null; - const res = await getMetadataFromUrl( - `/workspace/view_media?filename=${input.localPath}`, - ).catch((e) => { - console.error("get meta error:", e); - return { prompt: "" }; - }); - const md: Media = { id: input.localPath, localPath: input.localPath, workflowID: input.workflowID, createTime: Date.now(), - workflowJSON: JSON.stringify(res?.prompt), - format: format, }; await workflowsTable?.updateMetaInfo(input.workflowID, { latestImage: md.localPath, diff --git a/ui/src/db-tables/UserSettingsTable.ts b/ui/src/db-tables/UserSettingsTable.ts index 1999f9c..d186a01 100644 --- a/ui/src/db-tables/UserSettingsTable.ts +++ b/ui/src/db-tables/UserSettingsTable.ts @@ -43,7 +43,7 @@ export class UserSettingsTable extends TableBase { autoSaveDuration: 3, twoWaySync: false, foldersOnTop: false, - cloudHost: "https://www.nodecafe.org", + cloudHost: "https://www.nodecafe.co", overwriteCurWorkflowWhenDroppingFileToCanvas: false, maximumChangelogNumber: 80, hideCoverImage: false, diff --git a/ui/src/db-tables/WorkflowsTable.ts b/ui/src/db-tables/WorkflowsTable.ts index f2a71be..d9887d5 100644 --- a/ui/src/db-tables/WorkflowsTable.ts +++ b/ui/src/db-tables/WorkflowsTable.ts @@ -8,10 +8,6 @@ import { sortFileItem } from "../utils"; import { nanoid } from "nanoid"; import { TableBase } from "./TableBase"; import { indexdb } from "./indexdb"; -import { - deleteJsonFileMyWorkflows, - saveJsonFileMyWorkflows, -} from "./DiskFileUtils"; import { ESortTypes, ImportWorkflow } from "../RecentFilesDrawer/types"; import { defaultGraph } from "../defaultGraph"; import { scanMyWorkflowsDir } from "../utils/twowaySyncUtils"; @@ -51,11 +47,7 @@ export class WorkflowsTable extends TableBase { } /** - * Check whether the currently opened workflow is the latest version and is consistent with the DB. - * Through updateTime comparison, if it is inconsistent, it means that a newer version already exists in the DB. - * If the automatic save function is turned on at this time, the latest version in the DB will be overwritten. - * Therefore, the user needs to confirm whether to continue to enable automatic saving. - * @returns boolean + * Check whether the currently opened workflow is the latest version and is consistent with the DB */ public async latestVersionCheck() { if (this._curWorkflow) { @@ -146,8 +138,6 @@ export class WorkflowsTable extends TableBase { if (twoWaySyncEnabled) { await TwowaySyncAPI.createWorkflow(newWorkflow); return await this.get(newWorkflow.id); - } else { - saveJsonFileMyWorkflows(newWorkflow); } return newWorkflow; } @@ -197,15 +187,6 @@ export class WorkflowsTable extends TableBase { } if (twoWaySyncEnabled) { await TwowaySyncAPI.moveWorkflow(oldWorkflow, change.parentFolderID!); - } else { - await saveJsonFileMyWorkflows(newWorkflow); - await deleteJsonFileMyWorkflows(oldWorkflow); - // update parent folder updateTime - if (newWorkflow?.parentFolderID != null) { - await indexdb.folders?.update(newWorkflow.parentFolderID, { - updateTime: Date.now(), - }); - } } } public async genLastManualSavedJson(id: string) { @@ -240,8 +221,6 @@ export class WorkflowsTable extends TableBase { const twoWaySyncEnabled = await userSettingsTable?.getSetting("twoWaySync"); if (twoWaySyncEnabled) { after && (await TwowaySyncAPI.saveWorkflow(after)); - } else { - after && (await saveJsonFileMyWorkflows(after)); } } @@ -294,8 +273,6 @@ export class WorkflowsTable extends TableBase { } catch (e) { console.error("batchCreateFlows error", e); } - } else { - await saveJsonFileMyWorkflows(newWorkflow); } } try { @@ -314,8 +291,6 @@ export class WorkflowsTable extends TableBase { await userSettingsTable?.getSetting("twoWaySync"); if (twoWaySyncEnabled) { await TwowaySyncAPI.deleteWorkflow(workflow); - } else { - deleteJsonFileMyWorkflows({ ...workflow }); } } //add to IndexDB @@ -331,8 +306,6 @@ export class WorkflowsTable extends TableBase { await userSettingsTable?.getSetting("twoWaySync"); if (twoWaySyncEnabled) { await TwowaySyncAPI.deleteWorkflow(flow); - } else { - deleteJsonFileMyWorkflows({ ...flow }); } } await indexdb.workflows.bulkDelete(ids); diff --git a/ui/src/main.tsx b/ui/src/main.tsx index 09dabe9..f38499b 100644 --- a/ui/src/main.tsx +++ b/ui/src/main.tsx @@ -35,6 +35,10 @@ const zIndices = { }; const theme = extendTheme({ + config: { + initialColorMode: "dark", + useSystemColorMode: false, + }, zIndices, components: { Card: { diff --git a/ui/src/model-manager/missing-models-drawer/MissingModelItem.tsx b/ui/src/model-manager/missing-models-drawer/MissingModelItem.tsx index ae88f1e..bf10ada 100644 --- a/ui/src/model-manager/missing-models-drawer/MissingModelItem.tsx +++ b/ui/src/model-manager/missing-models-drawer/MissingModelItem.tsx @@ -14,7 +14,7 @@ import { useEffect, useState } from "react"; import { COMFYSPACE_TRACKING_FIELD_NAME } from "../../const"; import type { DepsResult, - ModelFile, + ModelDep, } from "../../spacejson/handleDownloadSpaceJson"; import { indexdb } from "../../db-tables/indexdb"; import { app } from "../../utils/comfyapp"; @@ -32,8 +32,8 @@ export interface MissingModel { interface Props { model: MissingModel; - setSelectedModelDeps: (deps: ModelFile[]) => void; - selectedModelDeps: ModelFile[]; + setSelectedModelDeps: (deps: ModelDep[]) => void; + selectedModelDeps: ModelDep[]; foldersList: Record; setFoldersList: (folders: Record) => void; } @@ -46,7 +46,7 @@ export default function MissingModelItem({ setFoldersList, }: Props) { const [suggestedModel, setSuggestedModel] = useState< - ModelFile | { existingModel: string } + ModelDep | { existingModel: string } >(); const modelDeps: DepsResult["models"] = app.graph.extra?.[COMFYSPACE_TRACKING_FIELD_NAME]?.deps?.models; @@ -76,7 +76,7 @@ export default function MissingModelItem({ const selectedModelNames = selectedModelDeps.map((dep) => dep.filename); function isExistingModel( - model: ModelFile | { existingModel: string }, + model: ModelDep | { existingModel: string }, ): model is { existingModel: string } { return (model as { existingModel: string }).existingModel != null; } diff --git a/ui/src/model-manager/missing-models-drawer/MissingModelsListDrawer.tsx b/ui/src/model-manager/missing-models-drawer/MissingModelsListDrawer.tsx index 73bd8b0..1746f1d 100644 --- a/ui/src/model-manager/missing-models-drawer/MissingModelsListDrawer.tsx +++ b/ui/src/model-manager/missing-models-drawer/MissingModelsListDrawer.tsx @@ -12,7 +12,7 @@ import { import { useCallback, useContext, useEffect, useState } from "react"; import MissingModelItem from "./MissingModelItem"; import { DRAWER_Z_INDEX } from "../../const"; -import type { ModelFile } from "../../spacejson/handleDownloadSpaceJson"; +import type { ModelDep } from "../../spacejson/handleDownloadSpaceJson"; import { getAllFoldersList } from "../../Api"; import { installModelsApi } from "../api/modelsApi"; import { getCivitApiKey } from "../../utils/civitUtils"; @@ -40,7 +40,7 @@ export default function MissingModelsListDrawer({ app.canvasEl.removeEventListener("click", onClose); }; }, []); - const [selectedModelDeps, setSelectedModelDeps] = useState([]); + const [selectedModelDeps, setSelectedModelDeps] = useState([]); const [foldersList, setFoldersList] = useState>({}); const { setRoute } = useContext(WorkspaceContext); const loadData = useCallback(async () => { @@ -77,7 +77,7 @@ export default function MissingModelsListDrawer({ } installModelsApi({ file_hash: model.fileHash ?? undefined, - filename: model.filename, + filename: model.name, save_path: foldersList[model.fileFolder][0], url, force_filename: true, diff --git a/ui/src/model-manager/topbar/ModelManagerTopbar.tsx b/ui/src/model-manager/topbar/ModelManagerTopbar.tsx index 1a80c68..f62e674 100644 --- a/ui/src/model-manager/topbar/ModelManagerTopbar.tsx +++ b/ui/src/model-manager/topbar/ModelManagerTopbar.tsx @@ -13,10 +13,6 @@ import type { ModelsListRespItemFromApi } from "../types"; import InatallModelsModal from "../install-models/InstallModelsModal"; import { TOPBAR_BUTTON_HEIGHT } from "../../const"; -const AddMissingModelsButton = lazy( - () => import("./InstallMissingModelsButton"), -); - export default function ModelManagerTopbar() { const { setRoute, route } = useContext(WorkspaceContext); @@ -75,11 +71,6 @@ export default function ModelManagerTopbar() { > Models -
- - - -
{route === "modelList" && ( setRoute("root")} /> )} diff --git a/ui/src/settings/CloudHostSetting.tsx b/ui/src/settings/CloudHostSetting.tsx index dad3d85..96d1a13 100644 --- a/ui/src/settings/CloudHostSetting.tsx +++ b/ui/src/settings/CloudHostSetting.tsx @@ -1,27 +1,29 @@ -import { - Input, - Stack, - useToast, - Text, - HStack, - Flex, - Button, -} from "@chakra-ui/react"; -import { useEffect, useRef } from "react"; +import { Input, Stack, useToast, Text, Flex, Button } from "@chakra-ui/react"; +import { useEffect, useState } from "react"; import { userSettingsTable } from "../db-tables/WorkspaceDB"; export default function CloudHostSetting() { - const inputRef = useRef(null); const toast = useToast(); + const [text, setText] = useState(""); + const getSettings = () => { userSettingsTable?.getSetting("cloudHost").then((res) => { - inputRef.current?.setAttribute("value", res ?? ""); + setText(res ?? ""); }); }; useEffect(() => { getSettings(); }, []); + const submitChange = async (text: string) => { + await userSettingsTable?.upsert({ cloudHost: text }); + getSettings(); + toast({ + title: "Setting saved. Please refresh to see the changes.", + status: "success", + duration: 4000, + }); + }; return ( @@ -30,26 +32,16 @@ export default function CloudHostSetting() { { - console.log("onBlur", inputRef.current?.value); - userSettingsTable?.upsert({ cloudHost: inputRef.current?.value }); - getSettings(); - toast({ - title: "Setting saved. Please refresh to see the changes.", - status: "success", - duration: 4000, - }); - }} + value={text} + onChange={(e) => setText(e.target.value)} + onBlur={() => submitChange(text)} /> )} - {/* Choose a version to share: */} { @@ -294,7 +298,6 @@ export default function ShareDialog({ onClose }: Props) { > - {/* */} Version Name - - {/* {localVersions.slice(0, 4).map((ver) => { - return ( - - ); - })} */} - - setEnableDeps(!enableDeps)} - fontWeight={"600"} - > - Share Resource Links - - {enableDeps && ( - <> - - You can disable reource sharing if you don't want to resolve - submit errors - - - - )} - + {Object.keys(deps?.images ?? {}).length > 0 && ( + + setEnableDeps(!enableDeps)} + fontWeight={"600"} + > + Share input images + + + + If enabled your input images will be uploaded and shared to{" "} + {cloudHost} + + {enableDeps && ( + + )} + + )} diff --git a/ui/src/spacejson/DownloadSpaceJsonDialog.tsx b/ui/src/spacejson/DownloadSpaceJsonDialog.tsx deleted file mode 100644 index 122a35d..0000000 --- a/ui/src/spacejson/DownloadSpaceJsonDialog.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { useContext, useRef } from "react"; -import { WorkspaceContext } from "../WorkspaceContext"; -import { - Badge, - Button, - HStack, - Heading, - Modal, - ModalBody, - ModalContent, - Text, - Tooltip, -} from "@chakra-ui/react"; -import { IconInfoCircle } from "@tabler/icons-react"; -import ResourceDepsForm from "./ResourceDepsForm"; - -export default function DownloadSpaceJsonDialog() { - const { setRoute } = useContext(WorkspaceContext); - const formRef = useRef(null); - return ( - setRoute("root")} size={"xl"}> - - - - Add Resouce Dependencies - - - - - - - Export runnable workflow - - - - - - - - - ); -} diff --git a/ui/src/spacejson/ResourceDepsForm.tsx b/ui/src/spacejson/ResourceDepsForm.tsx index 957de4c..4e388b2 100644 --- a/ui/src/spacejson/ResourceDepsForm.tsx +++ b/ui/src/spacejson/ResourceDepsForm.tsx @@ -1,335 +1,44 @@ -import { - forwardRef, - useCallback, - useContext, - useEffect, - useState, -} from "react"; -import { WorkspaceContext } from "../WorkspaceContext"; -import { - Button, - Flex, - HStack, - Heading, - IconButton, - Image, - Input, - Spinner, - Stack, - Tag, - Text, - Tooltip, -} from "@chakra-ui/react"; -import { - DepsResult, - ModelFile, - WorkspaceInfoDeps, - extractAndFetchFileNames, -} from "./handleDownloadSpaceJson"; -import { IconExternalLink, IconPencil, IconRefresh } from "@tabler/icons-react"; -import { getHgModelInfoUrlFromDownloadUrl } from "../utils/civitUtils"; -import { fetchApi, getAllModelsList } from "../Api"; -import { COMFYSPACE_TRACKING_FIELD_NAME } from "../const"; -import { indexdb } from "../db-tables/indexdb"; -import { app } from "../utils/comfyapp"; +import { HStack, Heading, Image, Spinner, Stack } from "@chakra-ui/react"; +import { DepsResult } from "./handleDownloadSpaceJson"; -export default forwardRef( - function ResourceDepsForm(_props, ref) { - const { saveCurWorkflow, setRoute } = useContext(WorkspaceContext); - const [deps, setDeps] = useState(); - const [errors, setErrors] = useState>({}); - const [uploadingImage, setUploadingImage] = useState(false); - - const init = useCallback(async () => { - const graph = app.graph.serialize(); - extractAndFetchFileNames(graph.nodes ?? []).then((depsRes) => { - setDeps(depsRes); - }); - }, []); - - const onRefreshModelsList = useCallback(async () => { - setDeps(undefined); - await getAllModelsList(); - window.addEventListener("model_list_updated", () => { - init(); - window.removeEventListener("model_list_updated", () => {}); - }); - }, []); - - useEffect(() => { - init(); - }, []); - - const validateURL = (url: string) => { - const pattern = new RegExp( - "^(https?:\\/\\/)?" + - "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|" + - "((\\d{1,3}\\.){3}\\d{1,3}))" + - "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" + - "(\\?[;&a-z\\d%_.~+=-]*)?" + - "(\\#[-a-z\\d_]*)?$", - "i", - ); - return !!pattern.test(url); - }; - - const handleSubmit = async (event: any) => { - event.preventDefault(); - event.stopPropagation(); - - const formData = new FormData(event.target); - // validate model deps and save model urls to db - const saveModelUrlDBPromises: Promise[] = - Object.values(deps?.models ?? {}).map(async (model) => { - const inputDownloadUrl = formData.get(model.filename)?.toString(); - if (inputDownloadUrl?.length) { - // because the models table is storing filename without extension as id, which should be migrated - const baseName = getBaseFileName(model.filename); - await indexdb.models.update(baseName + "@" + model.fileFolder, { - downloadUrl: inputDownloadUrl, - }); - } - const infoUrl = model.infoUrl?.length - ? model.infoUrl - : inputDownloadUrl - ? getHgModelInfoUrlFromDownloadUrl(inputDownloadUrl) - : null; - return { - filename: model.filename, - nodeType: model.nodeType, - fileHash: model.fileHash, - fileFolder: model.fileFolder, - downloadUrl: inputDownloadUrl ?? model.downloadUrl ?? null, - infoUrl: infoUrl ?? null, - inputName: model.inputName, - }; - }) ?? []; - const modelDepsArr = await Promise.all(saveModelUrlDBPromises); - if (!validateModelDeps(modelDepsArr)) { - return; - } - setErrors({}); - - // upload images - setUploadingImage(true); - const imageDepsToUpload = Object.values(deps?.images ?? {}) - .filter((i) => !i.url) - .map((i) => i.filename); - const imageDeps = deps?.images ?? {}; - - if (imageDepsToUpload.length) { - const uploadResp = await fetchApi("/workspace/upload_image", { - method: "POST", - body: JSON.stringify({ - images: imageDepsToUpload, - }), - }); - const json = (await uploadResp.json()) as Record; - Object.keys(json).forEach((key) => { - if (imageDeps?.[key]) { - imageDeps[key].url = json[key]; - } - }); - } - setUploadingImage(false); - - // save deps to graph - const modelDeps: WorkspaceInfoDeps["models"] = {}; - modelDepsArr.forEach((model) => { - modelDeps[model.filename] = model; - }); - const graph = app.graph.serialize(); - (graph.extra ||= {})[COMFYSPACE_TRACKING_FIELD_NAME] ||= {}; - graph.extra[COMFYSPACE_TRACKING_FIELD_NAME].deps = { - models: modelDeps, - images: imageDeps ?? {}, - nodeRepos: deps?.nodeRepos ?? [], - } as WorkspaceInfoDeps; - await app - .graphToPrompt(app.graph) - .then((data: { output: any; workflow: any }) => { - graph.extra[COMFYSPACE_TRACKING_FIELD_NAME].apiPrompt = data.output; - }); - - await saveCurWorkflow(); - window.dispatchEvent( - new CustomEvent("workspace_info_deps_updated", { - detail: graph, - }), - ); - console.log("graph", graph); - }; - - const validateModelDeps = useCallback((modelDeps: ModelFile[]) => { - let isValid = true; - modelDeps.forEach((model) => { - const key = model.filename; - if (!model.downloadUrl) { - setErrors((prev) => ({ - ...prev, - [key]: "Invalid URL", - })); - isValid = false; - return; - } - if (!validateURL(model.downloadUrl)) { - setErrors((prev) => ({ ...prev, [key]: "Invalid URL" })); - isValid = false; - return; - } - if (!model.fileFolder) { - setErrors((prev) => ({ - ...prev, - [key]: "Model file not found, please re-scan models folder", - })); - isValid = false; - return; - } - }); - return isValid; - }, []); - - const imageDepsArr = Object.values(deps?.images ?? {}); - const modelDepsArr = Object.values(deps?.models ?? []); - if (!deps) { - return ; - } - - return ( -
- - - Models ({modelDepsArr.length}) - {modelDepsArr.map((modelFile, index) => ( - - ))} - - - {imageDepsArr.length > 0 && ( - - - Images ({imageDepsArr.length}) - {/* Will be uploaded as url */} -

Will be uploaded as url

-
- {uploadingImage && ( - - Uploading - - )} - {imageDepsArr.map((image) => ( - -

{image.filename}

- -
- ))} -
- )} -
-
- ); - }, -); - -function getBaseFileName(filename: string) { - const parts = filename.split("."); - if (parts.length > 1) { - parts.pop(); - return parts.join("."); - } else { - return filename; - } -} - -function ModelDepsItem({ - modelFile, - errors, - onClickRefetchModelList, +export default function ResourceDepsForm({ + deps, + uploadingImage, }: { - modelFile: DepsResult["models"][0]; - errors: Record; - onClickRefetchModelList: () => void; + deps: DepsResult | null; + setDeps: (deps: DepsResult) => void; + uploadingImage: boolean; }) { - const inputKey = modelFile.filename; - const [isEditing, setIsEditing] = useState(!modelFile.downloadUrl); - - if (!modelFile.fileFolder) { - return ( - - -

{modelFile.filename}

- - Model file not found - -
- -
- ); + const imageDepsArr = Object.values(deps?.images ?? {}); + if (!deps) { + return ; } + return ( - - - - {modelFile.fileFolder} - - - {modelFile.downloadUrl ? ( + + {imageDepsArr.length > 0 && ( + - - {modelFile.filename} - - - } - size={"xs"} - onClick={() => setIsEditing(!isEditing)} - /> + Images ({imageDepsArr.length}) + {/* Will be uploaded as url */} +

Will be uploaded as url

- ) : ( - + {uploadingImage && ( - {modelFile.filename} ❓ + Uploading - - )} -
- - - - - - - {errors[inputKey]} + )} + {imageDepsArr.map((image) => ( + +

{image.filename}

+ +
+ ))} +
+ )} ); } diff --git a/ui/src/spacejson/handleDownloadSpaceJson.ts b/ui/src/spacejson/handleDownloadSpaceJson.ts index 7b28a9d..2350974 100644 --- a/ui/src/spacejson/handleDownloadSpaceJson.ts +++ b/ui/src/spacejson/handleDownloadSpaceJson.ts @@ -13,13 +13,18 @@ type LiteNode = { widgets_values?: Array; }; -export type ModelFile = { - filename: string; - fileFolder: string | null; - fileHash: string | null; - downloadUrl: string | null; +export type ModelDep = { + name: string; + folder: string | null; + hash: string | null; + url: string | null; + // TODO: will be deperecated + filename?: string; + fileFolder?: string | null; + fileHash?: string | null; + downloadUrl?: string | null; // optional info - infoUrl: string | null; + infoUrl?: string | null; nodeType?: string; inputName?: string; }; @@ -40,12 +45,12 @@ export type DepsResult = { nodeRepos: NodeRepo[]; }; -export type DepsResultModel = ModelFile & { +export type DepsResultModel = ModelDep & { length: number; }; export type WorkspaceInfoDeps = { - models: Record; + models: Record; images: DepsResult["images"]; nodeRepos: DepsResult["nodeRepos"]; }; @@ -57,20 +62,18 @@ async function fetchModelData( ): Promise { const res = (await indexdb.models.where("fileName").equals(filename).toArray()) ?? []; + console.log("fetch modeldata", res); const first = res.at(0); const modelFile: DepsResultModel = { - filename, + name: filename, nodeType, - fileHash: first?.fileHash ?? null, - fileFolder: first?.fileFolder ?? null, - downloadUrl: first?.civitModelVersionID + hash: first?.fileHash ?? null, + folder: first?.fileFolder ?? null, + url: first?.civitModelVersionID ? getCivitModelDownloadUrl(first.civitModelVersionID) : first?.downloadUrl ?? null, inputName: inputName, length: res.length, - infoUrl: first?.civitModelID - ? getCivitModelPageUrl(first.civitModelID, first.civitModelVersionID) - : getHgModelInfoUrlFromDownloadUrl(first?.downloadUrl ?? "") ?? null, }; return modelFile; } @@ -94,13 +97,9 @@ export async function extractAndFetchFileNames( if (typeof value != "string") return; // Check if it's a model file if (modelFileExtensions.some((ext) => value.endsWith(ext))) { - if (curDeps?.models?.[value]) { - modelPromises.push(Promise.resolve(curDeps.models[value])); - } else { - modelPromises.push( - fetchModelData(value, node.class_type, inputName), - ); - } + modelPromises.push( + fetchModelData(value, node.class_type, inputName), + ); } // Check if it's an image file if (imageFileExtensions.some((ext) => value.endsWith(ext))) { @@ -134,10 +133,7 @@ export async function extractAndFetchFileNames( const models = await Promise.all(modelPromises); const modelsMap: Record = {}; models.forEach((model) => { - // if (model.nodeType) { - // model.gitRepo = reposMapping[model.nodeType]; - // } - modelsMap[model.filename] = model; + modelsMap[model.name] = model; }); const nodeRepos: Record = {}; Object.values(reposMapping).forEach((repo) => { diff --git a/ui/src/types/dbTypes.ts b/ui/src/types/dbTypes.ts index a09abbe..1345ebb 100644 --- a/ui/src/types/dbTypes.ts +++ b/ui/src/types/dbTypes.ts @@ -10,10 +10,8 @@ export interface SortableItem { export interface Workflow extends SortableItem { id: string; json: string; - lastSavedJson?: string; // TODO will be deprecated name: string; createTime: number; - filePath?: string; // TODO will be deprecated privacy?: WorkflowPrivacy; tags?: string[]; parentFolderID?: string | null; //TODO remove undefined, use null only @@ -67,6 +65,7 @@ export type WorkflowVersion = { workflowID: string; json: string; createTime: number; + api_prompt: string; cloudID?: string; cloudOrigin?: string; authorID?: string; @@ -131,7 +130,6 @@ export type Media = { workflowJSON?: string; createTime: number; localPath: string; - format: string; }; /** diff --git a/ui/src/utils/twowaySyncUtils.ts b/ui/src/utils/twowaySyncUtils.ts index 7688abe..2f67b02 100644 --- a/ui/src/utils/twowaySyncUtils.ts +++ b/ui/src/utils/twowaySyncUtils.ts @@ -4,7 +4,7 @@ import { ScanLocalFolder, scanLocalFiles, } from "../apis/TwowaySyncApi"; -import { isFolder, userSettingsTable } from "../db-tables/WorkspaceDB"; +import { isFolder } from "../db-tables/WorkspaceDB"; import { indexdb } from "../db-tables/indexdb"; import { Folder, Workflow } from "../types/dbTypes"; import { sortFileItem } from "../utils"; @@ -34,7 +34,13 @@ export async function scanMyWorkflowsDir( return folder; } else { // is workflow - const existingWorkflow = (await indexdb.workflows?.get(file.id)) ?? { + + const existingWorkflow = (await indexdb.workflows + ?.get(file.id) + .catch((err) => { + console.error("Error getting workflow from indexdb", err); + return null; + })) ?? { createTime: Date.now(), updateTime: Date.now(), };