@linkdlab/funcnodes_react_flow 0.3.18 → 0.3.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -153,5 +153,5 @@ function(e,t){const n=eF(e,t);return"production"!==process.env.NODE_ENV?(...t)=>
153
153
  * content-type
154
154
  * Copyright(c) 2015 Douglas Christopher Wilson
155
155
  * MIT Licensed
156
- */var AB=function(){if(IB)return _B;IB=1;var e=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,t=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,r=/\\([\u000b\u0020-\u00ff])/g,o=/([\\"])/g,i=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function a(e){var r=String(e);if(n.test(r))return r;if(r.length>0&&!t.test(r))throw new TypeError("invalid parameter value");return'"'+r.replace(o,"\\$1")+'"'}function s(e){this.parameters=Object.create(null),this.type=e}return _B.format=function(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.parameters,r=e.type;if(!r||!i.test(r))throw new TypeError("invalid type");var o=r;if(t&&"object"==typeof t)for(var s,l=Object.keys(t).sort(),c=0;c<l.length;c++){if(s=l[c],!n.test(s))throw new TypeError("invalid parameter name");o+="; "+s+"="+a(t[s])}return o},_B.parse=function(t){if(!t)throw new TypeError("argument string is required");var n="object"==typeof t?function(e){var t;"function"==typeof e.getHeader?t=e.getHeader("content-type"):"object"==typeof e.headers&&(t=e.headers&&e.headers["content-type"]);if("string"!=typeof t)throw new TypeError("content-type header is missing from object");return t}(t):t;if("string"!=typeof n)throw new TypeError("argument string is required to be a string");var o=n.indexOf(";"),a=-1!==o?n.slice(0,o).trim():n.trim();if(!i.test(a))throw new TypeError("invalid media type");var l=new s(a.toLowerCase());if(-1!==o){var c,u,d;for(e.lastIndex=o;u=e.exec(n);){if(u.index!==o)throw new TypeError("invalid parameter format");o+=u[0].length,c=u[1].toLowerCase(),34===(d=u[2]).charCodeAt(0)&&-1!==(d=d.slice(1,-1)).indexOf("\\")&&(d=d.replace(r,"$1")),l.parameters[c]=d}if(o!==n.length)throw new TypeError("invalid parameter format")}return l},_B}(),NB=new Map,OB=function(e){return e.cloneNode(!0)},RB=function(){return"file:"===window.location.protocol},MB=function(e,t,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){try{if(!/\.svg/i.test(e)&&2===r.readyState){var t=r.getResponseHeader("Content-Type");if(!t)throw new Error("Content type not found");var o=AB.parse(t).type;if("image/svg+xml"!==o&&"text/plain"!==o)throw new Error("Invalid content type: ".concat(o))}if(4===r.readyState){if(404===r.status||null===r.responseXML)throw new Error(RB()?"Note: SVG injection ajax calls do not work locally without adjusting security settings in your browser. Or consider using a local webserver.":"Unable to load SVG file: "+e);if(!(200===r.status||RB()&&0===r.status))throw new Error("There was a problem injecting the SVG: "+r.status+" "+r.statusText);n(null,r)}}catch(e){if(r.abort(),!(e instanceof Error))throw e;n(e,r)}},r.open("GET",e),r.withCredentials=t,r.overrideMimeType&&r.overrideMimeType("text/xml"),r.send()},TB={},PB=function(e,t){TB[e]=TB[e]||[],TB[e].push(t)},DB=function(e,t,n){if(NB.has(e)){var r=NB.get(e);if(void 0===r)return void PB(e,n);if(r instanceof SVGSVGElement)return void n(null,OB(r))}NB.set(e,void 0),PB(e,n),MB(e,t,(function(t,n){var r;t?NB.set(e,t):(null===(r=n.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&NB.set(e,n.responseXML.documentElement),function(e){for(var t=function(t,n){setTimeout((function(){if(Array.isArray(TB[e])){var n=NB.get(e),r=TB[e][t];n instanceof SVGSVGElement&&r(null,OB(n)),n instanceof Error&&r(n),t===TB[e].length-1&&delete TB[e]}}),0)},n=0,r=TB[e].length;n<r;n++)t(n)}(e)}))},jB=function(e,t,n){MB(e,t,(function(e,t){var r;e?n(e):(null===(r=t.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&n(null,t.responseXML.documentElement)}))},FB=0,LB=[],zB={},BB="http://www.w3.org/1999/xlink",VB=function(e,t,n,r,o,i,a){var s=e.getAttribute("data-src")||e.getAttribute("src");if(s){if(-1!==LB.indexOf(e))return LB.splice(LB.indexOf(e),1),void(e=null);LB.push(e),e.setAttribute("src",""),(r?DB:jB)(s,o,(function(r,o){if(!o)return LB.splice(LB.indexOf(e),1),e=null,void a(r);var l=e.getAttribute("id");l&&o.setAttribute("id",l);var c=e.getAttribute("title");c&&o.setAttribute("title",c);var u=e.getAttribute("width");u&&o.setAttribute("width",u);var d=e.getAttribute("height");d&&o.setAttribute("height",d);var f=Array.from(new Set(Ad(Ad(Ad([],(o.getAttribute("class")||"").split(" "),!0),["injected-svg"],!1),(e.getAttribute("class")||"").split(" "),!0))).join(" ").trim();o.setAttribute("class",f);var p=e.getAttribute("style");p&&o.setAttribute("style",p),o.setAttribute("data-src",s);var m=[].filter.call(e.attributes,(function(e){return/^data-\w[\w-]*$/.test(e.name)}));if(Array.prototype.forEach.call(m,(function(e){e.name&&e.value&&o.setAttribute(e.name,e.value)})),n){var h,g,y,b,v,w={clipPath:["clip-path"],"color-profile":["color-profile"],cursor:["cursor"],filter:["filter"],linearGradient:["fill","stroke"],marker:["marker","marker-start","marker-mid","marker-end"],mask:["mask"],path:[],pattern:["fill","stroke"],radialGradient:["fill","stroke"]};Object.keys(w).forEach((function(e){h=e,y=w[e];for(var t=function(e,t){var n;b=g[e].id,v=b+"-"+ ++FB,Array.prototype.forEach.call(y,(function(e){for(var t=0,r=(n=o.querySelectorAll("["+e+'*="'+b+'"]')).length;t<r;t++){var i=n[t].getAttribute(e);i&&!i.match(new RegExp('url\\("?#'+b+'"?\\)'))||n[t].setAttribute(e,"url(#"+v+")")}}));for(var r=o.querySelectorAll("[*|href]"),i=[],a=0,s=r.length;a<s;a++){var l=r[a].getAttributeNS(BB,"href");l&&l.toString()==="#"+g[e].id&&i.push(r[a])}for(var c=0,u=i.length;c<u;c++)i[c].setAttributeNS(BB,"href","#"+v);g[e].id=v},n=0,r=(g=o.querySelectorAll(h+"[id]")).length;n<r;n++)t(n)}))}o.removeAttribute("xmlns:a");for(var x,C,k=o.querySelectorAll("script"),E=[],S=0,I=k.length;S<I;S++)(C=k[S].getAttribute("type"))&&"application/ecmascript"!==C&&"application/javascript"!==C&&"text/javascript"!==C||((x=k[S].innerText||k[S].textContent)&&E.push(x),o.removeChild(k[S]));if(E.length>0&&("always"===t||"once"===t&&!zB[s])){for(var _=0,A=E.length;_<A;_++)new Function(E[_])(window);zB[s]=!0}var N=o.querySelectorAll("style");if(Array.prototype.forEach.call(N,(function(e){e.textContent+=""})),o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("xmlns:xlink",BB),i(o),!e.parentNode)return LB.splice(LB.indexOf(e),1),e=null,void a(new Error("Parent node is null"));e.parentNode.replaceChild(o,e),LB.splice(LB.indexOf(e),1),e=null,a(null,o)}))}else a(new Error("Invalid data-src or src attribute"))},GB=["afterInjection","beforeInjection","desc","evalScripts","fallback","httpRequestWithCredentials","loading","renumerateIRIElements","src","title","useRequestCache","wrapper"],WB="http://www.w3.org/2000/svg",HB="http://www.w3.org/1999/xlink",XB=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).initialState={hasError:!1,isLoading:!0},t.state=t.initialState,t._isMounted=!1,t.reactWrapper=void 0,t.nonReactWrapper=void 0,t.refCallback=function(e){t.reactWrapper=e},t}Uz(t,e);var n=t.prototype;return n.renderSVG=function(){var e=this;if(this.reactWrapper instanceof function(e){return((null==e?void 0:e.ownerDocument)||document).defaultView||window}(this.reactWrapper).Node){var t,n,r=this.props,o=r.desc,i=r.evalScripts,a=r.httpRequestWithCredentials,s=r.renumerateIRIElements,l=r.src,c=r.title,u=r.useRequestCache,d=this.props.onError,f=this.props.beforeInjection,p=this.props.afterInjection,m=this.props.wrapper;"svg"===m?((t=document.createElementNS(WB,m)).setAttribute("xmlns",WB),t.setAttribute("xmlns:xlink",HB),n=document.createElementNS(WB,m)):(t=document.createElement(m),n=document.createElement(m)),t.appendChild(n),n.dataset.src=l,this.nonReactWrapper=this.reactWrapper.appendChild(t);var h=function(t){e.removeSVG(),e._isMounted?e.setState((function(){return{hasError:!0,isLoading:!1}}),(function(){d(t)})):d(t)};!function(e,t){var n=void 0===t?{}:t,r=n.afterAll,o=void 0===r?function(){}:r,i=n.afterEach,a=void 0===i?function(){}:i,s=n.beforeEach,l=void 0===s?function(){}:s,c=n.cacheRequests,u=void 0===c||c,d=n.evalScripts,f=void 0===d?"never":d,p=n.httpRequestWithCredentials,m=void 0!==p&&p,h=n.renumerateIRIElements,g=void 0===h||h;if(e&&"length"in e)for(var y=0,b=0,v=e.length;b<v;b++)VB(e[b],f,g,u,m,l,(function(t,n){a(t,n),e&&"length"in e&&e.length===++y&&o(y)}));else e?VB(e,f,g,u,m,l,(function(t,n){a(t,n),o(1),e=null})):o(0)}(n,{afterEach:function(t,n){t?h(t):e._isMounted&&e.setState((function(){return{isLoading:!1}}),(function(){try{p(n)}catch(e){h(e)}}))},beforeEach:function(e){if(e.setAttribute("role","img"),o){var t=e.querySelector(":scope > desc");t&&e.removeChild(t);var n=document.createElement("desc");n.innerHTML=o,e.prepend(n)}if(c){var r=e.querySelector(":scope > title");r&&e.removeChild(r);var i=document.createElement("title");i.innerHTML=c,e.prepend(i)}try{f(e)}catch(e){h(e)}},cacheRequests:u,evalScripts:i,httpRequestWithCredentials:a,renumerateIRIElements:s})}},n.removeSVG=function(){var e;null!=(e=this.nonReactWrapper)&&e.parentNode&&(this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper),this.nonReactWrapper=null)},n.componentDidMount=function(){this._isMounted=!0,this.renderSVG()},n.componentDidUpdate=function(e){var t=this;(function(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1})(gR({},e),this.props)&&this.setState((function(){return t.initialState}),(function(){t.removeSVG(),t.renderSVG()}))},n.componentWillUnmount=function(){this._isMounted=!1,this.removeSVG()},n.render=function(){var e=this.props;e.afterInjection,e.beforeInjection,e.desc,e.evalScripts;var t=e.fallback;e.httpRequestWithCredentials;var n=e.loading;e.renumerateIRIElements,e.src,e.title,e.useRequestCache;var r=e.wrapper,i=pR(e,GB),a=r;return o.createElement(a,gR({},i,{ref:this.refCallback},"svg"===r?{xmlns:WB,xmlnsXlink:HB}:{}),this.state.isLoading&&n&&o.createElement(n,null),this.state.hasError&&t&&o.createElement(t,null))},t}(o.Component);XB.defaultProps={afterInjection:function(){},beforeInjection:function(){},desc:"",evalScripts:"never",fallback:null,httpRequestWithCredentials:!1,loading:null,onError:function(){},renumerateIRIElements:!0,title:"",useRequestCache:!0,wrapper:"div"},XB.propTypes={afterInjection:ey.func,beforeInjection:ey.func,desc:ey.string,evalScripts:ey.oneOf(["always","once","never"]),fallback:ey.oneOfType([ey.func,ey.object,ey.string]),httpRequestWithCredentials:ey.bool,loading:ey.oneOfType([ey.func,ey.object,ey.string]),onError:ey.func,renumerateIRIElements:ey.bool,src:ey.string.isRequired,title:ey.string,useRequestCache:ey.bool,wrapper:ey.oneOf(["div","span","svg"])};const $B=({value:e,renderoptions:t})=>(void 0===t&&(t={}),void 0===t.format&&(t.format="jpeg"),o.createElement("img",{src:"data:image/"+t.format+";base64, "+e,style:{maxWidth:"100%",maxHeight:"100%"}})),ZB=({value:e})=>o.createElement(XB,{src:`data:image/svg+xml;base64,${btoa(e)}`,style:{maxWidth:"100%",maxHeight:"100%"},beforeInjection:e=>{e.classList.add("svg-class-name"),e.setAttribute("style","max-width: 100%; max-height: 100%;"),e.setAttribute("width","100%"),e.setAttribute("height","100%")}}),YB=({io:e})=>{let t=e.fullvalue;if(null==t&&(t=e.value),void 0===t&&(t=""),"string"!=typeof t||t.length%4!=0)return o.createElement("div",null,t);const n=Math.round(3*t.length/4);return o.createElement("div",null,o.createElement("pre",null,"Bytes(",n,")"))},UB=({io:e})=>{let t=e.fullvalue;return void 0===t&&(t=e.value),void 0===t&&(t={}),o.createElement(OD,{data:t})},JB={float:({io:e,inputconverter:t})=>aD({io:e,inputconverter:t,parser:parseFloat}),int:({io:e,inputconverter:t})=>aD({io:e,inputconverter:t,parser:parseInt}),bool:({io:t,inputconverter:n})=>{const r=e.useContext(FV),i=void 0===t.value,a=e.useRef(null);e.useEffect((()=>{a.current&&(a.current.indeterminate=i)}),[a,i]);return o.createElement("input",{ref:a,type:"checkbox",className:"styledcheckbox booleaninput",checked:!!n[1](t.value),onChange:e=>{let o=e.target.checked;try{o=n[0](e.target.checked)}catch(e){}r.worker?.set_io_value({nid:t.node,ioid:t.id,value:o,set_default:t.render_options.set_default})},disabled:t.connected})},string:sD,str:sD,color:({io:t})=>{const n=e.useContext(FV),r=t.value_options?.colorspace||"hex";let i=!1;return"string"!=typeof t.type&&"anyOf"in t.type&&void 0!==t.type.anyOf&&(i=t.type.anyOf.some((e=>"None"===e))),o.createElement(KN,{onChange:e=>{let o="<NoValue>";e&&(o=e[r]?e[r]():e.hex()),null===e&&(o=null),n.worker?.set_io_value({nid:t.node,ioid:t.id,value:o,set_default:t.render_options.set_default})},inicolordata:t.value,allow_null:i,inicolorspace:r})},select:fD,enum:fD,bytes:YB},KB={Inputrenderer:JB,Outputrenderer:{},HandlePreviewRenderer:{bytes:YB},DataOverlayRenderer:{},DataPreviewViewRenderer:{string:({io:e})=>{let t=e.fullvalue;return null==t&&(t=e.value),t=void 0===t?"":JSON.stringify(e.value).replace(/\\n/g,"\n"),o.createElement("div",null,o.createElement("pre",null,t))},table:({io:e})=>{let t=e.fullvalue;return null==t&&(t=e.value),void 0===t&&(t=[]),o.createElement(SB,{tabledata:t})},image:({io:e})=>{let t=e.fullvalue;return null==t&&(t=e.value),void 0===t&&(t=""),o.createElement($B,{value:t})},svg:({io:e})=>{let t=e.fullvalue;return null==t&&(t=e.value),void 0===t&&(t=""),o.createElement(ZB,{value:t})},dict:UB,bytes:YB},DataViewRenderer:{},InLineRenderer:{bytes:({io:e})=>{let t=e.fullvalue;null==t&&(t=e.value),t=void 0===t?"":JSON.stringify(e.value).replace(/\\n/g,"\n");return`Bytes(${Math.round(3*t.length/4)})`}}},qB=(e,t)=>{const n=t.options||{},r=void 0===n.overwrite||n.overwrite;switch(t.type){case"EXTEND_INPUT_RENDER":return!r&&e.Inputrenderer[t.payload.type]?e:{...e,Inputrenderer:{...e.Inputrenderer,[t.payload.type]:t.payload.component}};case"EXTEND_OUTPUT_RENDER":return!r&&e.Outputrenderer[t.payload.type]?e:{...e,Outputrenderer:{...e.Outputrenderer,[t.payload.type]:t.payload.component}};case"EXTEND_HANDLE_PREVIEW_RENDER":return!r&&e.HandlePreviewRenderer[t.payload.type]?e:{...e,HandlePreviewRenderer:{...e.HandlePreviewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_OVERLAY_RENDER":return!r&&e.DataOverlayRenderer[t.payload.type]?e:{...e,DataOverlayRenderer:{...e.DataOverlayRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_PREVIEW_RENDER":return!r&&e.DataPreviewViewRenderer[t.payload.type]?e:{...e,DataPreviewViewRenderer:{...e.DataPreviewViewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_VIEW_RENDER":return!r&&e.DataViewRenderer[t.payload.type]?e:{...e,DataViewRenderer:{...e.DataViewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_FROM_PLUGIN":let n=!1;const o=[[t.payload.plugin.input_renderers||{},e.Inputrenderer],[t.payload.plugin.output_renderers||{},e.Outputrenderer],[t.payload.plugin.handle_preview_renderers||{},e.HandlePreviewRenderer],[t.payload.plugin.data_overlay_renderers||{},e.DataOverlayRenderer],[t.payload.plugin.data_preview_renderers||{},e.DataPreviewViewRenderer],[t.payload.plugin.data_view_renderers||{},e.DataViewRenderer]];for(const[e,t]of o){if(Object.keys(e).length>0)if(r)n=!0;else for(const r in e)if(!t[r]){n=!0;break}if(n)break}if(!n)return e;for(const[e,t]of o)for(const n in e)!r&&t[n]||(t[n]=e[n]);return{...e};default:return e}},QB=({children:t,plugins:n,fnrf_zst:r})=>{const[i,a]=e.useReducer(qB,KB),s=(e,t)=>{a({type:"EXTEND_FROM_PLUGIN",payload:{plugin:e},options:t})};return e.useEffect((()=>{for(const e in n){const t=n[e].RendererPlugin;t&&s(t);const i=n[e].renderpluginfactory;i&&s(i({React:o,fnrf_zst:r}))}}),[n]),o.createElement(eV.Provider,{value:{Inputrenderer:i.Inputrenderer,Outputrenderer:i.Outputrenderer,HandlePreviewRenderer:i.HandlePreviewRenderer,DataOverlayRenderer:i.DataOverlayRenderer,DataPreviewViewRenderer:i.DataPreviewViewRenderer,DataViewRenderer:i.DataViewRenderer,InLineRenderer:i.InLineRenderer,extendInputRenderMapping:(e,t,n)=>{a({type:"EXTEND_INPUT_RENDER",payload:{type:e,component:t},options:n})},extendOutputRenderMapping:(e,t,n)=>{a({type:"EXTEND_OUTPUT_RENDER",payload:{type:e,component:t},options:n})},extendHandlePreviewRenderMapping:(e,t,n)=>{a({type:"EXTEND_HANDLE_PREVIEW_RENDER",payload:{type:e,component:t},options:n})},extendDataOverlayRenderMapping:(e,t,n)=>{a({type:"EXTEND_DATA_OVERLAY_RENDER",payload:{type:e,component:t},options:n})},extendDataPreviewRenderMapping:(e,t,n)=>{a({type:"EXTEND_DATA_PREVIEW_RENDER",payload:{type:e,component:t},options:n})},extendDataViewRenderMapping:(e,t,n)=>{a({type:"EXTEND_DATA_VIEW_RENDER",payload:{type:e,component:t},options:n})},extendFromPlugin:s}},t)},eV=e.createContext({Inputrenderer:KB.Inputrenderer,Outputrenderer:KB.Outputrenderer,HandlePreviewRenderer:KB.HandlePreviewRenderer,DataOverlayRenderer:KB.DataOverlayRenderer,DataPreviewViewRenderer:KB.DataPreviewViewRenderer,DataViewRenderer:KB.DataViewRenderer,InLineRenderer:KB.InLineRenderer,extendInputRenderMapping:(e,t,n)=>{},extendOutputRenderMapping:(e,t,n)=>{},extendHandlePreviewRenderMapping:(e,t,n)=>{},extendDataOverlayRenderMapping:(e,t,n)=>{},extendDataPreviewRenderMapping:(e,t,n)=>{},extendDataViewRenderMapping:(e,t,n)=>{},extendFromPlugin:(e,t)=>{}}),tV=({component:e,...t})=>o.createElement(e,{...t}),nV=t=>{const n=e.useContext(FV).render_options(),[r]=rV(t.type,n.typemap||{});if(!r)return UB;const{DataOverlayRenderer:o,DataPreviewViewRenderer:i}=e.useContext(eV);return o[r]?o[r]:i[r]?i[r]:UB},rV=(e,t)=>{if("string"==typeof e)return e in t?[t[e],e]:[e,e];if("allOf"in e&&void 0!==e.allOf)return[void 0,void 0];if("anyOf"in e&&void 0!==e.anyOf){const n=e.anyOf.map((e=>rV(e,t)));for(const e of n)switch(e[0]){case"bool":return["bool",e[1]];case"enum":return["enum",e[1]];case"float":return["float",e[1]];case"int":return["int",e[1]];case"string":case"str":return["string",e[1]]}return[void 0,void 0]}return"type"in e&&void 0!==e.type&&"enum"===e.type?["enum","enum"]:[void 0,void 0]},oV=({io:t,typestring:n,preview:r,...i})=>{const[a,s]=e.useState(!1),[l,c]=e.useState(!1),u=o.useContext(FV),[d,f]=t?(t=>{const n=e.useContext(FV).render_options(),[r]=rV(t.type,n.typemap||{}),{HandlePreviewRenderer:o,DataPreviewViewRenderer:i}=e.useContext(eV),a=nV(t);return r?o[r]?[o[r],a]:i[r]?[i[r],a]:[UB,a]:[UB,a]})(t):[void 0,void 0],p=u.local_state((()=>u.reactflowRef));return o.createElement(BN,{open:a||l,onOpenChange:c},o.createElement(VN,{asChild:!0},o.createElement(ci,{id:t.id,"data-type":n,...i})),o.createElement(GN,{container:p},o.createElement(WN,{className:"iotooltipcontent",sideOffset:5},o.createElement("div",{className:"iotooltip_container"},o.createElement("div",{className:"iotooltip_header"},a?o.createElement(Xy,{onClick:()=>s(!1)}):o.createElement(Hy,{onClick:()=>s(!0)}),f&&o.createElement(Uy,{title:t.full_id,trigger:o.createElement(jy,null),onOpenChange:e=>{e&&t.try_get_full_value&&t.try_get_full_value(),s(e)}},o.createElement(tV,{component:f,io:t}))),d?o.createElement(tV,{component:d,io:t}):`no preview available for "${n}"`),o.createElement(HN,{className:"iotooltipcontentarrow"}))))},iV={"":[e=>e,e=>e],str_to_json:[e=>JSON.parse(e),e=>"string"==typeof e?e:JSON.stringify(e)],str_to_list:[e=>{try{const t=JSON.parse(e);return Array.isArray(t)?t:[t]}catch(t){try{return JSON.parse("["+e+"]")}catch(e){}}throw new Error("Invalid list")},e=>JSON.stringify(e)]},aV=({io:t})=>{const n=e.useContext(FV).render_options(),[r,i]=rV(t.render_options.type,n.typemap||{}),{Inputrenderer:a}=e.useContext(eV),s=r?t.value_options?.options?fD:a[r]:void 0,l=iV[(i&&n.inputconverter?.[i])??""];return o.createElement("div",{className:"nodeinput","data-type":r},o.createElement(oV,{io:t,typestring:r,position:So.Left,type:"target"}),s&&o.createElement("div",{className:"iovaluefield nodrag","data-type":r},o.createElement(s,{io:t,inputconverter:l})),o.createElement("div",{className:"ioname"},t.name),o.createElement(oV,{io:t,typestring:r,position:So.Right,type:"source"}))},sV=({io:t,typestring:n})=>{const{InLineRenderer:r}=e.useContext(eV);if(n&&r[n])return o.createElement("div",null,r[n]({io:t}));let i=t.fullvalue;return null==i&&(i=t.value),i=void 0===i?"":JSON.stringify(i).replace(/\\n/g,"\n"),i.length>63&&(i=i.slice(0,60)+"..."),o.createElement("div",null,i)},lV=({io:t})=>{const n=e.useContext(FV).render_options(),[r]=rV(t.type,n.typemap||{}),{Outputrenderer:i}=e.useContext(eV),a=r?i[r]:void 0;return o.createElement("div",{className:"nodeoutput","data-type":r},o.createElement(oV,{io:t,typestring:r,position:So.Right,type:"source"}),o.createElement("div",{className:"ioname"},t.name),a?o.createElement("div",{className:"iovaluefield nodrag"},o.createElement(a,{io:t})):o.createElement("div",{className:"iovaluefield"},o.createElement(sV,{io:t,typestring:r})))};function cV(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,"0")}`}function uV(e,t){const n=["","K","M","G","T"];let r=0;for(;e>=t&&r<n.length-1;)e/=t,r++;return[e.toFixed(2),n[r]]}const dV=({state:t,className:n="reacttqdm",...r})=>{const i=e.useRef(null),a=e.useRef(null);e.useEffect((()=>{const e=()=>{i.current&&a.current&&function(e,t,n={}){const{maxFontSize:r=100,minFontSize:o=6,decrementFactor:i=.9}=n;if(!e||!t)return;if(i>=1||i<=0)throw new Error("decrementFactor must be between 0 and 1");const a=e.getBoundingClientRect(),s=a.width,l=a.height;let c=r;t.style.whiteSpace="nowrap",t.style.display="inline-block",t.style.fontSize=c+"px";let u=t.getBoundingClientRect();for(;(u.width>s||u.height>l)&&c>o;)c*=i,t.style.fontSize=c+"px",u=t.getBoundingClientRect()}(i.current,a.current,{maxFontSize:12,decrementFactor:.9})};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]);const s=t.total?t.n/t.total*100:0;return o.createElement("div",{ref:i,className:n,...r},o.createElement("div",{style:{position:"relative",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}},o.createElement("div",{className:n+"-bar",style:{position:"absolute",width:"100%",height:"100%",overflow:"hidden"}},o.createElement("div",{className:n+"-progress",style:{width:`${s}%`,height:"100%"}})),o.createElement("div",{className:n+"-text",ref:a},function(e={n:0,elapsed:0,ascii:!1,unit:"it",unit_scale:!1,unit_divisor:1e3}){let t=e.total??null;const{n:n,unit_scale:r,elapsed:o,unit:i,unit_divisor:a,prefix:s="",rate:l,postfix:c=null,initial:u=0}=e;null!==t&&n>=t+.5&&(t=null);let d=n,f=t,p=l;r&&!0!==r&&1!==r&&(null!==t&&(f=t*r),d=n*r,void 0!==l&&(p=l*r));const m=cV(o);void 0===p&&o>0&&(p=(d-u)/o);const h=p?1/p:void 0,[g,y]=p?uV(p,a):[void 0,""],[b,v]=h?uV(h,1e3):[void 0,""],w=h&&h>1?b?`${b}${v}s/`+i:"?":(g||"?")+`${y}${i}/s`,x=r?uV(d,a).join(""):d.toString(),C=r&&null!==f?uV(f,a).join(""):f?.toString()??"?",k=p?cV(p&&null!==f?(f-d)/p:0):"?",E=s?`${s}: `:"";if(null!==t){const e=` ${x}/${C} [${m} < ${k}, ${w}${c??""}]`;return`${E}${(d/t*100).toFixed(0)}%${e}`}return`${E}${x}${i} [${m}, ${w}${c??""}]`}(t))))},fV=({node_data:t})=>{const n=e.useContext(FV);return o.createElement("div",{className:"nodeheader",title:t.description||t.node_name},o.createElement("div",{className:"nodeheader_element"},o.createElement(Zy,{fontSize:"inherit",className:"triggerbutton",onClick:()=>{n.on_node_action({type:"trigger",from_remote:!1,id:t.id})}}),o.createElement($y,{fontSize:"inherit",onClick:async()=>{n.logger.info("nodestatus",await(n.worker?.get_node_status(t.id)))}})),o.createElement("div",{className:"nodeheader_element nodeheader_title"},o.createElement("div",{className:"nodeheader_title_text"},t.node_name)),o.createElement("div",{className:"nodeheader_element"},o.createElement(Gy,{fontSize:"inherit"})))},pV=({node_data:t})=>{const n=t.render_options?.data?.src?t.io[t.render_options?.data?.src]:void 0,[r,i]=n?(t=>{const n=e.useContext(FV).render_options(),[r]=rV(t.type,n.typemap||{}),o=nV(t),{DataPreviewViewRenderer:i,DataViewRenderer:a}=e.useContext(eV);return r?a[r]?[a[r],o]:i[r]?[i[r],o]:[UB,o]:[UB,o]})(n):[void 0,void 0];return o.createElement("div",{className:"nodrag nodedatabody","data-src":t.render_options?.data?.src||""},r&&n&&o.createElement(Uy,{title:n.full_id,trigger:o.createElement("div",{className:"nodedatabutton"},o.createElement(tV,{component:r,io:n})),onOpenChange:e=>{e&&n?.try_get_full_value&&n?.try_get_full_value()}},o.createElement(tV,{component:i,io:n})))},mV=({node_data:e})=>{const t=Object.values(e.io).filter((e=>e.is_input)),n=Object.values(e.io).filter((e=>!e.is_input));return e.render_options,o.createElement("div",{className:"nodebody"},n.map((e=>e.hidden?null:o.createElement(lV,{key:e.id,io:e}))),o.createElement(pV,{node_data:e}),t.map((e=>e.hidden?null:o.createElement(aV,{key:e.id,io:e}))))},hV=({node_data:t})=>{const[n,r]=e.useState(t.name);e.useEffect((()=>{r(t.name)}),[t]);const i=e.useContext(FV);return o.createElement("input",{className:"nodename_input",value:n,onChange:e=>{r(e.target.value)},onBlur:e=>{const n=e.target.value;i.on_node_action({type:"update",from_remote:!1,id:t.id,node:{name:n}})}})},gV=({node_data:e})=>e.progress?o.createElement(dV,{style:{height:"idle"===e.progress.prefix?"0px":void 0},state:e.progress,className:"nodeprogress"}):null,yV=({node_data:e})=>o.createElement("div",{className:"nodefooter"},e.error&&o.createElement("div",{className:"nodeerror"},e.error),o.createElement(gV,{node_data:e})),bV=({io:e})=>{const t=o.useContext(FV).render_options(),[n,r]=rV(e.render_options.type,t.typemap||{}),{Inputrenderer:i}=o.useContext(eV),a=n?e.value_options?.options?fD:i[n]:void 0,s=iV[(r&&t.inputconverter?.[r])??""];return o.createElement("div",{className:"nodesettings_component"},o.createElement("div",null,e.name),a&&o.createElement(a,{io:e,inputconverter:s}),o.createElement("div",null,o.createElement("label",null,"hidden:",o.createElement("input",{className:"styledcheckbox",type:"checkbox",disabled:e.connected,onChange:t=>{e.set_hidden?.(t.target.checked)},checked:e.hidden}))))},vV=({io:e})=>o.createElement("div",{className:"nodesettings_component"},o.createElement("div",null,e.name),o.createElement("div",null,o.createElement("label",null,"hidden:",o.createElement("input",{className:"styledcheckbox",type:"checkbox",disabled:e.connected,onChange:t=>{e.set_hidden?.(t.target.checked)},checked:e.hidden})))),wV=({nodestore:e})=>{const t=e(),n=Object.values(t.io).filter((e=>e.is_input)),r=Object.values(t.io).filter((e=>!e.is_input));return o.createElement("div",{className:"nodesettings_content"},o.createElement("div",{className:"nodesettings_section"},o.createElement("div",{className:"nodesettings_component"},o.createElement("div",null,"Name"),o.createElement("div",null,o.createElement(hV,{node_data:t})))),o.createElement("div",{className:"nodesettings_section"},o.createElement("div",null,"Inputs"),n.map((e=>o.createElement(bV,{io:e,key:e.id})))),o.createElement("div",{className:"nodesettings_section"},o.createElement("div",null,"Outputs"),r.map((e=>o.createElement(vV,{io:e,key:e.id})))))},xV=()=>{const e=o.useContext(FV),t=e.local_state((e=>e.selected_nodes));if(0===t.length)return o.createElement("div",null,"Node Settings");if(t.length>1)return o.createElement("div",null,"Multiple Nodes Selected");const n=e.nodespace.get_node(t[0]);return n?o.createElement(wV,{nodestore:n}):o.createElement("div",null,"Node not found")},CV=()=>{const e=o.useContext(FV),t=e.local_settings((e=>e.view_settings.expand_node_props)),n=e.local_settings((e=>e.update_view_settings));return o.createElement(bC,{maxSize:"300px",direction:"left",expanded:void 0!==t&&t,containerClassName:"pos-right pos-top bg1 h-12",className:"nodesettings_content",onExpandChange:e=>{n({expand_node_props:e})}},o.createElement(xV,null))},kV=e=>({nodes:e.nodes,edges:e.edges,onNodesChange:e.onNodesChange,onEdgesChange:e.onEdgesChange,onConnect:e.onConnect}),EV={default:({data:t})=>{const n=t.UseNodeStore(),r=n.properties["frontend:collapsed"]||!1,{visualTrigger:i}=(t=>{const n=e.useContext(FV),[r,o]=e.useState(!1);return e.useEffect((()=>{n.worker?.call_hooks("node_mounted",t.id)}),[n.worker,t.id]),e.useEffect((()=>{let e;return t.in_trigger&&!r?o(!0):r&&(e=setTimeout((()=>o(!1)),200)),()=>clearTimeout(e)}),[t.in_trigger,r]),{visualTrigger:r}})(n);return o.createElement(o.Fragment,null,o.createElement("div",{className:"innernode"+(i?" intrigger":"")+(n.error?" error":"")},o.createElement(fV,{node_data:n}),o.createElement(hV,{node_data:n}),r?null:o.createElement(mV,{node_data:n}),o.createElement(yV,{node_data:n})))}},SV={default:({id:e,sourceX:t,sourceY:n,targetX:r,targetY:i,sourcePosition:a,targetPosition:s,data:l,...c})=>{const[u]=Lo({sourceX:t,sourceY:n,sourcePosition:a,targetX:r,targetY:i,targetPosition:s});return o.createElement(o.Fragment,null,o.createElement(go,{id:e,path:u,...c}))}},IV=()=>{const t=Zi();return e.useContext(FV).rf_instance=t,o.createElement(o.Fragment,null)},_V=()=>{const t=e.useContext(FV),n=Pi("Delete"),r=Hr(Cs,Z),i=Hr(xs,Z);if(n){for(const e of r)if(e.selected){if(!t.worker)return o.createElement(o.Fragment,null);if(!e.source||!e.target)return o.createElement(o.Fragment,null);if(!e.sourceHandle||!e.targetHandle)return o.createElement(o.Fragment,null);t.worker.remove_edge({src_nid:e.source,src_ioid:e.sourceHandle,trg_nid:e.target,trg_ioid:e.targetHandle})}for(const e of i)if(e.selected){if(!t.worker)return o.createElement(o.Fragment,null);t.worker.remove_node(e.id)}}return o.createElement(o.Fragment,null)},AV=({id:t,top:n,left:r,right:i,bottom:a,...s})=>{const{getNode:l,setNodes:c,addNodes:u,setEdges:d}=Zi(),f=e.useContext(FV),p=e.useCallback((()=>{const e=l(t);if(!e)return;const n={x:e.position.x+50,y:e.position.y+50};u({...e,id:`${e.id}-copy`,position:n})}),[t,l,u]),m=e.useCallback((()=>{f.on_node_action({type:"delete",id:t,from_remote:!1})}),[t,c,d]),h=f.nodespace.get_node(t,!1);if(!h)return o.createElement(o.Fragment,null," ");const g=h();return o.createElement("div",{style:{top:n,left:r,right:i,bottom:a},className:"context-menu",...s},o.createElement("p",{style:{fontWeight:"bold"}},o.createElement("small",null,g.name)),o.createElement("button",{onClick:p},"duplicate"),o.createElement("button",{onClick:m},"delete"))},NV=t=>{const n=e.useContext(FV),r=e.useRef(null);e.useEffect((()=>{n.reactflowRef=r.current}),[r]);const[i,a]=e.useState(null),s=e.useCallback((()=>a(null)),[a]),{nodes:l,edges:c,onNodesChange:u,onEdgesChange:d,onConnect:f}=n.useReactFlowStore(cN(kV));return o.createElement("div",{className:"reactflowlayer"},o.createElement(ws,{nodes:l,edges:c,onNodesChange:u,onEdgesChange:d,onConnect:f,nodeTypes:EV,edgeTypes:SV,minZoom:t.minZoom,maxZoom:t.maxZoom,fitView:!0,onSelectionChange:({nodes:e,edges:t})=>{const r=n.local_state.getState();n.local_state.setState({...r,selected_nodes:e.map((e=>e.id)),selected_edges:t.map((e=>e.id))})},ref:r,onPaneClick:s,panOnDrag:!t.static},o.createElement(IV,null),o.createElement(_V,null),o.createElement(zs,{color:"#888",gap:16,size:1}),t.minimap&&o.createElement(Ms,{nodeStrokeWidth:3,pannable:!t.static,zoomable:!t.static,zoomStep:3}),i&&o.createElement(AV,{onClick:s,...i})))},OV=e.createContext(void 0),RV=e.forwardRef(((t,n)=>{const{asChild:r,children:a,className:s,style:l,...c}=t,[u,d]=e.useState(!1),f=e.useRef(null),[p,m]=e.useState(null),[h,g]=e.useState({}),y=t.htime||300,b=t.vtime||300,v=t.hdelay||0,w=t.vdelay||200;e.useImperativeHandle(n,(()=>f.current),[]);let x;if(r&&o.isValidElement(a)){const e=a,t=[e.props.className,s,"smooth-expand",u?"smooth-expand-expanded":""].filter(Boolean).join(" "),n={...e.props.style,...l,...h};x=o.cloneElement(e,{ref:f,className:t,style:n,...c})}else x=o.createElement("div",{ref:f,...c,className:`smooth-expand ${u?"smooth-expand-expanded":""} ${s||""}`,style:{...l,...h}},a);const C=o.createElement(OV.Provider,{value:{isExpanded:u,toggleExpand:async()=>{f.current&&(u?await(async()=>{if(!f.current)return;if(!p)return;const e={transitionProperty:"width, left, height, top",transitionDuration:`${y}ms, ${y}ms, ${b}ms, ${b}ms`};g((t=>({...t,...e})));const[t,n,r,o]=p,i=new Promise((e=>{setTimeout((()=>{g((e=>({...e,left:`${t}px`,width:`${r}px`}))),e()}),w)})),a=new Promise((e=>{setTimeout((()=>{g((e=>({...e,top:`${n}px`,height:`${o}px`}))),e()}),v)})),s=Math.max(y+v,b+w),l=new Promise((e=>{setTimeout((()=>{e()}),s)}));await Promise.all([i,a,l]),f.current.style.transition="",g({}),d(!1)})():await(async()=>{if(!f.current)return;f.current.style.transition="none",f.current.style.position="",f.current.style.top="",f.current.style.left="",f.current.style.width="",f.current.style.height="";const e=f.current.getBoundingClientRect();m([e.left,e.top,e.width,e.height]),f.current.style.transition="none",g({position:"absolute",top:`${e.top}px`,left:`${e.left}px`,width:`${e.width}px`,height:`${e.height}px`}),g((e=>({...e,transitionProperty:"width, left, height, top",transitionDuration:`${y}ms, ${y}ms, ${b}ms, ${b}ms`}))),d(!0);const t=new Promise((e=>{setTimeout((()=>{g((e=>({...e,left:"0px",width:"100vw"}))),e()}),v)})),n=new Promise((e=>{setTimeout((()=>{g((e=>({...e,top:"0px",height:"100vh"}))),e()}),w)})),r=Math.max(y+v,b+w),o=new Promise((e=>{setTimeout((()=>{e()}),r)}));await Promise.all([t,n,o])})())}}},x);return u?i.createPortal(C,document.body):C}));RV.Trigger=function({children:t}){const n=e.useContext(OV);if(!n)throw new Error("SmoothExpandComponent.Trigger must be used within a SmoothExpandComponent");return o.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleExpand},t)},RV.Expanded=function({children:t}){const n=e.useContext(OV);if(!n)throw new Error("SmoothExpandComponent.Expanded must be used within a SmoothExpandComponent");return n.isExpanded?o.createElement(o.Fragment,null,t):null},RV.Collapsed=function({children:t}){const n=e.useContext(OV);if(!n)throw new Error("SmoothExpandComponent.Collapsed must be used within a SmoothExpandComponent");return n.isExpanded?null:o.createElement(o.Fragment,null,t)};const MV=o.createContext(void 0),TV=e.forwardRef(((t,n)=>{const{asChild:r,children:i,className:a,style:s,...l}=t,c=e.useRef(null);e.useImperativeHandle(n,(()=>c.current),[]);const[u,d]=e.useState(!1),f=e.useCallback((async()=>{try{const e=c.current;if(!e)return;if(u){const e=document;e.exitFullscreen?await e.exitFullscreen():e.mozCancelFullScreen?await e.mozCancelFullScreen():e.webkitExitFullscreen?await e.webkitExitFullscreen():e.msExitFullscreen&&await e.msExitFullscreen(),d(!1)}else e.requestFullscreen?await e.requestFullscreen():e.mozRequestFullScreen?await e.mozRequestFullScreen():e.webkitRequestFullscreen?await e.webkitRequestFullscreen():e.msRequestFullscreen&&await e.msRequestFullscreen(),d(!0)}catch(e){console.error("Error toggling fullscreen",e)}}),[u]);let p;if(e.useEffect((()=>{const e=()=>{const e=document.fullscreenElement;d(!!e)};return document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e),()=>{document.removeEventListener("fullscreenchange",e),document.removeEventListener("webkitfullscreenchange",e),document.removeEventListener("mozfullscreenchange",e),document.removeEventListener("MSFullscreenChange",e)}}),[]),r&&o.isValidElement(i)){const e=i,t=[e.props.className,a].filter(Boolean).join(" "),n={...e.props.style,...s};p=o.cloneElement(e,{ref:c,className:t,style:n,...l})}else p=o.createElement("div",{ref:c,...l,className:a,style:s},i);return o.createElement(MV.Provider,{value:{isFullScreen:u,toggleFullscreen:f}},p)}));TV.Trigger=function({children:e}){const t=o.useContext(MV);if(!t)throw new Error("FullScreenComponent.Trigger must be used within a FullScreenComponent");return o.createElement("div",{style:{cursor:"pointer"},onClick:t.toggleFullscreen},e)},TV.InFullScreen=function({children:e}){const t=o.useContext(MV);if(!t)throw new Error("FullScreenComponent.Expanded must be used within a FullScreenComponent");return t.isFullScreen?o.createElement(o.Fragment,null,e):null},TV.OutFullScreen=function({children:e}){const t=o.useContext(MV);if(!t)throw new Error("FullScreenComponent.Collapsed must be used within a FullScreenComponent");return t.isFullScreen?null:o.createElement(o.Fragment,null,e)};const PV=({fnrf_zst:t,header:n,flow:r,library:i})=>{const[a,s]=e.useState(t.options.worker),l=o.useRef(null);t.workermanager&&(t.workermanager.on_setWorker=s),t.set_worker(a),o.useEffect((()=>{t.auto_progress()}),[]),o.useEffect((()=>{t.local_state.setState({funcnodescontainerRef:l.current})}),[l]);const c=t.plugins();return o.createElement(QB,{plugins:c,fnrf_zst:t},o.createElement(FV.Provider,{value:t},o.createElement(RV,{asChild:!0},o.createElement(TV,{asChild:!0},o.createElement(hC,{style:{height:"100%",width:"100%"}},o.createElement("div",{ref:l,className:"funcnodesreactflowcontainer funcnodescontainer"},n.show&&o.createElement(EC,{...n}),o.createElement("div",{className:"funcnodesreactflowbody"},o.createElement(NV,{...r}),a&&i.show&&o.createElement(sN,null),a&&r.showNodeSettings&&o.createElement(CV,null)),o.createElement("div",{className:"funcnodesflaotingmenu"},o.createElement(TV.OutFullScreen,null,r.allowExpand&&o.createElement(RV.Trigger,null,o.createElement(RV.Expanded,null,o.createElement(Ly,{size:"xl",style:{padding:"4px"}})),o.createElement(RV.Collapsed,null,o.createElement(zy,{size:"xl",style:{padding:"4px"}})))),r.allowFullScreen&&o.createElement(TV.Trigger,null,o.createElement(TV.OutFullScreen,null,o.createElement(jy,{size:"xl",style:{padding:"4px"}})),o.createElement(TV.InFullScreen,null,o.createElement(Fy,{size:"xl",style:{padding:"4px"}}))))))))))},DV={},jV={id:"",debug:!1,useWorkerManager:!0,show_library:!0,header:{show:!0,showmenu:!0},flow:{minimap:!0,static:!1,minZoom:.1,maxZoom:5,allowFullScreen:!0,allowExpand:!0,showNodeSettings:!0},library:{show:!0}},FV=e.createContext(Js(jV)),LV=e=>{let t=T(e,{...jV,id:Su()}).new_obj;if(!t.useWorkerManager&&void 0===t.worker)return o.createElement("div",null,"Error: If you don't use a worker manager, you must provide a default worker.");if(e.useWorkerManager&&void 0===e.workermanager_url)return o.createElement("div",null,"Error: If you use a worker manager, you must provide a worker manager url.");if(void 0===window.fnrf_zst&&(window.fnrf_zst=DV),void 0===DV[t.id]){const e=Js(t);DV[t.id]=e}if(t.worker&&t.worker.set_zustand(DV[t.id]),DV[t.id].options.debug=t.debug,t.useWorkerManager){const e=new Au(t.workermanager_url,DV[t.id]);DV[t.id].workermanager=e}return o.createElement(PV,{fnrf_zst:DV[t.id],header:t.header,library:t.library,flow:t.flow})},zV={set_io_value:({nid:t,ioid:n,value:r,set_default:o=!1})=>{const i=e.useContext(FV);i.worker?.set_io_value({nid:t,ioid:n,value:r,set_default:o})}};exports.FuncNodesContext=FV,exports.FuncNodesReactFlowZustand=Js,exports.FuncNodesWorker=Iu,exports.FuncnodesReactFlow=LV,exports.ReactFlowLayer=NV,exports.RenderMappingProvider=QB,exports.WebSocketWorker=_u,exports.assert_full_node=z,exports.deep_update=T,exports.default=e=>{const t=new Zs("FuncNodes",e.debug?"debug":"info");t.debug("Initalizing FuncNodes with props:",e);let n=T(e,{...jV,id:Su()}).new_obj;if(void 0===e.worker&&void 0!==e.worker_url&&(n.useWorkerManager=!1,n.worker=new _u({url:e.worker_url,uuid:n.id,on_sync_complete:n.on_sync_complete})),void 0!==n.worker){const e=Js(n);n.worker.set_zustand(e)}if(void 0!==e.fnw_url){if(void 0===n.worker)throw new Error("defining fnw_url requires a worker to be defined");const t=async function(e,t=!0){try{const n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch from URL: ${n.status} ${n.statusText}`);const r=await n.blob();return await new Promise(((e,n)=>{const o=new FileReader;o.onload=()=>{const r=o.result;"string"!=typeof r&&(n("Failed to convert URL to Base64: No result from FileReader"),n(o.error)),e(t?r.split(",")[1]:r)},o.onerror=()=>n(o.error),o.readAsDataURL(r)}))}catch(e){throw console.error("Error converting URL to Base64:",e),e}}(e.fnw_url),r=n.worker.on_sync_complete,o=async e=>{const n=await t;e.on_sync_complete=r,await e.update_from_export(n)};n.worker.on_sync_complete=o}return t.debug("Initalizing FuncnodesReactFlow with props:",n),o.createElement("div",{className:"FuncnodesApp"},o.createElement(LV,{...n}))},exports.helperfunctions=zV;
156
+ */var AB=function(){if(IB)return _B;IB=1;var e=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,t=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,r=/\\([\u000b\u0020-\u00ff])/g,o=/([\\"])/g,i=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function a(e){var r=String(e);if(n.test(r))return r;if(r.length>0&&!t.test(r))throw new TypeError("invalid parameter value");return'"'+r.replace(o,"\\$1")+'"'}function s(e){this.parameters=Object.create(null),this.type=e}return _B.format=function(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.parameters,r=e.type;if(!r||!i.test(r))throw new TypeError("invalid type");var o=r;if(t&&"object"==typeof t)for(var s,l=Object.keys(t).sort(),c=0;c<l.length;c++){if(s=l[c],!n.test(s))throw new TypeError("invalid parameter name");o+="; "+s+"="+a(t[s])}return o},_B.parse=function(t){if(!t)throw new TypeError("argument string is required");var n="object"==typeof t?function(e){var t;"function"==typeof e.getHeader?t=e.getHeader("content-type"):"object"==typeof e.headers&&(t=e.headers&&e.headers["content-type"]);if("string"!=typeof t)throw new TypeError("content-type header is missing from object");return t}(t):t;if("string"!=typeof n)throw new TypeError("argument string is required to be a string");var o=n.indexOf(";"),a=-1!==o?n.slice(0,o).trim():n.trim();if(!i.test(a))throw new TypeError("invalid media type");var l=new s(a.toLowerCase());if(-1!==o){var c,u,d;for(e.lastIndex=o;u=e.exec(n);){if(u.index!==o)throw new TypeError("invalid parameter format");o+=u[0].length,c=u[1].toLowerCase(),34===(d=u[2]).charCodeAt(0)&&-1!==(d=d.slice(1,-1)).indexOf("\\")&&(d=d.replace(r,"$1")),l.parameters[c]=d}if(o!==n.length)throw new TypeError("invalid parameter format")}return l},_B}(),NB=new Map,OB=function(e){return e.cloneNode(!0)},RB=function(){return"file:"===window.location.protocol},MB=function(e,t,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){try{if(!/\.svg/i.test(e)&&2===r.readyState){var t=r.getResponseHeader("Content-Type");if(!t)throw new Error("Content type not found");var o=AB.parse(t).type;if("image/svg+xml"!==o&&"text/plain"!==o)throw new Error("Invalid content type: ".concat(o))}if(4===r.readyState){if(404===r.status||null===r.responseXML)throw new Error(RB()?"Note: SVG injection ajax calls do not work locally without adjusting security settings in your browser. Or consider using a local webserver.":"Unable to load SVG file: "+e);if(!(200===r.status||RB()&&0===r.status))throw new Error("There was a problem injecting the SVG: "+r.status+" "+r.statusText);n(null,r)}}catch(e){if(r.abort(),!(e instanceof Error))throw e;n(e,r)}},r.open("GET",e),r.withCredentials=t,r.overrideMimeType&&r.overrideMimeType("text/xml"),r.send()},TB={},PB=function(e,t){TB[e]=TB[e]||[],TB[e].push(t)},DB=function(e,t,n){if(NB.has(e)){var r=NB.get(e);if(void 0===r)return void PB(e,n);if(r instanceof SVGSVGElement)return void n(null,OB(r))}NB.set(e,void 0),PB(e,n),MB(e,t,(function(t,n){var r;t?NB.set(e,t):(null===(r=n.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&NB.set(e,n.responseXML.documentElement),function(e){for(var t=function(t,n){setTimeout((function(){if(Array.isArray(TB[e])){var n=NB.get(e),r=TB[e][t];n instanceof SVGSVGElement&&r(null,OB(n)),n instanceof Error&&r(n),t===TB[e].length-1&&delete TB[e]}}),0)},n=0,r=TB[e].length;n<r;n++)t(n)}(e)}))},jB=function(e,t,n){MB(e,t,(function(e,t){var r;e?n(e):(null===(r=t.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&n(null,t.responseXML.documentElement)}))},FB=0,LB=[],zB={},BB="http://www.w3.org/1999/xlink",VB=function(e,t,n,r,o,i,a){var s=e.getAttribute("data-src")||e.getAttribute("src");if(s){if(-1!==LB.indexOf(e))return LB.splice(LB.indexOf(e),1),void(e=null);LB.push(e),e.setAttribute("src",""),(r?DB:jB)(s,o,(function(r,o){if(!o)return LB.splice(LB.indexOf(e),1),e=null,void a(r);var l=e.getAttribute("id");l&&o.setAttribute("id",l);var c=e.getAttribute("title");c&&o.setAttribute("title",c);var u=e.getAttribute("width");u&&o.setAttribute("width",u);var d=e.getAttribute("height");d&&o.setAttribute("height",d);var f=Array.from(new Set(Ad(Ad(Ad([],(o.getAttribute("class")||"").split(" "),!0),["injected-svg"],!1),(e.getAttribute("class")||"").split(" "),!0))).join(" ").trim();o.setAttribute("class",f);var p=e.getAttribute("style");p&&o.setAttribute("style",p),o.setAttribute("data-src",s);var m=[].filter.call(e.attributes,(function(e){return/^data-\w[\w-]*$/.test(e.name)}));if(Array.prototype.forEach.call(m,(function(e){e.name&&e.value&&o.setAttribute(e.name,e.value)})),n){var h,g,y,b,v,w={clipPath:["clip-path"],"color-profile":["color-profile"],cursor:["cursor"],filter:["filter"],linearGradient:["fill","stroke"],marker:["marker","marker-start","marker-mid","marker-end"],mask:["mask"],path:[],pattern:["fill","stroke"],radialGradient:["fill","stroke"]};Object.keys(w).forEach((function(e){h=e,y=w[e];for(var t=function(e,t){var n;b=g[e].id,v=b+"-"+ ++FB,Array.prototype.forEach.call(y,(function(e){for(var t=0,r=(n=o.querySelectorAll("["+e+'*="'+b+'"]')).length;t<r;t++){var i=n[t].getAttribute(e);i&&!i.match(new RegExp('url\\("?#'+b+'"?\\)'))||n[t].setAttribute(e,"url(#"+v+")")}}));for(var r=o.querySelectorAll("[*|href]"),i=[],a=0,s=r.length;a<s;a++){var l=r[a].getAttributeNS(BB,"href");l&&l.toString()==="#"+g[e].id&&i.push(r[a])}for(var c=0,u=i.length;c<u;c++)i[c].setAttributeNS(BB,"href","#"+v);g[e].id=v},n=0,r=(g=o.querySelectorAll(h+"[id]")).length;n<r;n++)t(n)}))}o.removeAttribute("xmlns:a");for(var x,C,k=o.querySelectorAll("script"),E=[],S=0,I=k.length;S<I;S++)(C=k[S].getAttribute("type"))&&"application/ecmascript"!==C&&"application/javascript"!==C&&"text/javascript"!==C||((x=k[S].innerText||k[S].textContent)&&E.push(x),o.removeChild(k[S]));if(E.length>0&&("always"===t||"once"===t&&!zB[s])){for(var _=0,A=E.length;_<A;_++)new Function(E[_])(window);zB[s]=!0}var N=o.querySelectorAll("style");if(Array.prototype.forEach.call(N,(function(e){e.textContent+=""})),o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("xmlns:xlink",BB),i(o),!e.parentNode)return LB.splice(LB.indexOf(e),1),e=null,void a(new Error("Parent node is null"));e.parentNode.replaceChild(o,e),LB.splice(LB.indexOf(e),1),e=null,a(null,o)}))}else a(new Error("Invalid data-src or src attribute"))},GB=["afterInjection","beforeInjection","desc","evalScripts","fallback","httpRequestWithCredentials","loading","renumerateIRIElements","src","title","useRequestCache","wrapper"],WB="http://www.w3.org/2000/svg",HB="http://www.w3.org/1999/xlink",XB=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).initialState={hasError:!1,isLoading:!0},t.state=t.initialState,t._isMounted=!1,t.reactWrapper=void 0,t.nonReactWrapper=void 0,t.refCallback=function(e){t.reactWrapper=e},t}Uz(t,e);var n=t.prototype;return n.renderSVG=function(){var e=this;if(this.reactWrapper instanceof function(e){return((null==e?void 0:e.ownerDocument)||document).defaultView||window}(this.reactWrapper).Node){var t,n,r=this.props,o=r.desc,i=r.evalScripts,a=r.httpRequestWithCredentials,s=r.renumerateIRIElements,l=r.src,c=r.title,u=r.useRequestCache,d=this.props.onError,f=this.props.beforeInjection,p=this.props.afterInjection,m=this.props.wrapper;"svg"===m?((t=document.createElementNS(WB,m)).setAttribute("xmlns",WB),t.setAttribute("xmlns:xlink",HB),n=document.createElementNS(WB,m)):(t=document.createElement(m),n=document.createElement(m)),t.appendChild(n),n.dataset.src=l,this.nonReactWrapper=this.reactWrapper.appendChild(t);var h=function(t){e.removeSVG(),e._isMounted?e.setState((function(){return{hasError:!0,isLoading:!1}}),(function(){d(t)})):d(t)};!function(e,t){var n=void 0===t?{}:t,r=n.afterAll,o=void 0===r?function(){}:r,i=n.afterEach,a=void 0===i?function(){}:i,s=n.beforeEach,l=void 0===s?function(){}:s,c=n.cacheRequests,u=void 0===c||c,d=n.evalScripts,f=void 0===d?"never":d,p=n.httpRequestWithCredentials,m=void 0!==p&&p,h=n.renumerateIRIElements,g=void 0===h||h;if(e&&"length"in e)for(var y=0,b=0,v=e.length;b<v;b++)VB(e[b],f,g,u,m,l,(function(t,n){a(t,n),e&&"length"in e&&e.length===++y&&o(y)}));else e?VB(e,f,g,u,m,l,(function(t,n){a(t,n),o(1),e=null})):o(0)}(n,{afterEach:function(t,n){t?h(t):e._isMounted&&e.setState((function(){return{isLoading:!1}}),(function(){try{p(n)}catch(e){h(e)}}))},beforeEach:function(e){if(e.setAttribute("role","img"),o){var t=e.querySelector(":scope > desc");t&&e.removeChild(t);var n=document.createElement("desc");n.innerHTML=o,e.prepend(n)}if(c){var r=e.querySelector(":scope > title");r&&e.removeChild(r);var i=document.createElement("title");i.innerHTML=c,e.prepend(i)}try{f(e)}catch(e){h(e)}},cacheRequests:u,evalScripts:i,httpRequestWithCredentials:a,renumerateIRIElements:s})}},n.removeSVG=function(){var e;null!=(e=this.nonReactWrapper)&&e.parentNode&&(this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper),this.nonReactWrapper=null)},n.componentDidMount=function(){this._isMounted=!0,this.renderSVG()},n.componentDidUpdate=function(e){var t=this;(function(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1})(gR({},e),this.props)&&this.setState((function(){return t.initialState}),(function(){t.removeSVG(),t.renderSVG()}))},n.componentWillUnmount=function(){this._isMounted=!1,this.removeSVG()},n.render=function(){var e=this.props;e.afterInjection,e.beforeInjection,e.desc,e.evalScripts;var t=e.fallback;e.httpRequestWithCredentials;var n=e.loading;e.renumerateIRIElements,e.src,e.title,e.useRequestCache;var r=e.wrapper,i=pR(e,GB),a=r;return o.createElement(a,gR({},i,{ref:this.refCallback},"svg"===r?{xmlns:WB,xmlnsXlink:HB}:{}),this.state.isLoading&&n&&o.createElement(n,null),this.state.hasError&&t&&o.createElement(t,null))},t}(o.Component);XB.defaultProps={afterInjection:function(){},beforeInjection:function(){},desc:"",evalScripts:"never",fallback:null,httpRequestWithCredentials:!1,loading:null,onError:function(){},renumerateIRIElements:!0,title:"",useRequestCache:!0,wrapper:"div"},XB.propTypes={afterInjection:ey.func,beforeInjection:ey.func,desc:ey.string,evalScripts:ey.oneOf(["always","once","never"]),fallback:ey.oneOfType([ey.func,ey.object,ey.string]),httpRequestWithCredentials:ey.bool,loading:ey.oneOfType([ey.func,ey.object,ey.string]),onError:ey.func,renumerateIRIElements:ey.bool,src:ey.string.isRequired,title:ey.string,useRequestCache:ey.bool,wrapper:ey.oneOf(["div","span","svg"])};const $B=({value:e,renderoptions:t})=>(void 0===t&&(t={}),void 0===t.format&&(t.format="jpeg"),o.createElement("img",{src:"data:image/"+t.format+";base64, "+e,style:{maxWidth:"100%",maxHeight:"100%"}})),ZB=({value:e})=>o.createElement(XB,{src:`data:image/svg+xml;base64,${btoa(e)}`,style:{maxWidth:"100%",maxHeight:"100%"},beforeInjection:e=>{e.classList.add("svg-class-name"),e.setAttribute("style","max-width: 100%; max-height: 100%;"),e.setAttribute("width","100%"),e.setAttribute("height","100%")}}),YB=({io:e})=>{let t=e.fullvalue;if(null==t&&(t=e.value),void 0===t&&(t=""),"string"!=typeof t||t.length%4!=0)return o.createElement("div",null,t);const n=Math.round(3*t.length/4);return o.createElement("div",null,o.createElement("pre",null,"Bytes(",n,")"))},UB=({io:e})=>{let t=e.fullvalue;return void 0===t&&(t=e.value),void 0===t&&(t={}),o.createElement(OD,{data:t})},JB={float:({io:e,inputconverter:t})=>aD({io:e,inputconverter:t,parser:parseFloat}),int:({io:e,inputconverter:t})=>aD({io:e,inputconverter:t,parser:parseInt}),bool:({io:t,inputconverter:n})=>{const r=e.useContext(FV),i=void 0===t.value,a=e.useRef(null);e.useEffect((()=>{a.current&&(a.current.indeterminate=i)}),[a,i]);return o.createElement("input",{ref:a,type:"checkbox",className:"styledcheckbox booleaninput",checked:!!n[1](t.value),onChange:e=>{let o=e.target.checked;try{o=n[0](e.target.checked)}catch(e){}r.worker?.set_io_value({nid:t.node,ioid:t.id,value:o,set_default:t.render_options.set_default})},disabled:t.connected})},string:sD,str:sD,color:({io:t})=>{const n=e.useContext(FV),r=t.value_options?.colorspace||"hex";let i=!1;return"string"!=typeof t.type&&"anyOf"in t.type&&void 0!==t.type.anyOf&&(i=t.type.anyOf.some((e=>"None"===e))),o.createElement(KN,{onChange:e=>{let o="<NoValue>";e&&(o=e[r]?e[r]():e.hex()),null===e&&(o=null),n.worker?.set_io_value({nid:t.node,ioid:t.id,value:o,set_default:t.render_options.set_default})},inicolordata:t.value,allow_null:i,inicolorspace:r})},select:fD,enum:fD,bytes:YB},KB={Inputrenderer:JB,Outputrenderer:{},HandlePreviewRenderer:{bytes:YB},DataOverlayRenderer:{},DataPreviewViewRenderer:{string:({io:e})=>{let t=e.fullvalue;return null==t&&(t=e.value),t=void 0===t?"":JSON.stringify(e.value).replace(/\\n/g,"\n"),o.createElement("div",null,o.createElement("pre",null,t))},table:({io:e})=>{let t=e.fullvalue;return null==t&&(t=e.value),void 0===t&&(t=[]),o.createElement(SB,{tabledata:t})},image:({io:e})=>{let t=e.fullvalue;return null==t&&(t=e.value),void 0===t&&(t=""),o.createElement($B,{value:t})},svg:({io:e})=>{let t=e.fullvalue;return null==t&&(t=e.value),void 0===t&&(t=""),o.createElement(ZB,{value:t})},dict:UB,bytes:YB},DataViewRenderer:{},InLineRenderer:{bytes:({io:e})=>{let t=e.fullvalue;null==t&&(t=e.value),t=void 0===t?"":JSON.stringify(e.value).replace(/\\n/g,"\n");return`Bytes(${Math.round(3*t.length/4)})`}}},qB=(e,t)=>{const n=t.options||{},r=void 0===n.overwrite||n.overwrite;switch(t.type){case"EXTEND_INPUT_RENDER":return!r&&e.Inputrenderer[t.payload.type]?e:{...e,Inputrenderer:{...e.Inputrenderer,[t.payload.type]:t.payload.component}};case"EXTEND_OUTPUT_RENDER":return!r&&e.Outputrenderer[t.payload.type]?e:{...e,Outputrenderer:{...e.Outputrenderer,[t.payload.type]:t.payload.component}};case"EXTEND_HANDLE_PREVIEW_RENDER":return!r&&e.HandlePreviewRenderer[t.payload.type]?e:{...e,HandlePreviewRenderer:{...e.HandlePreviewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_OVERLAY_RENDER":return!r&&e.DataOverlayRenderer[t.payload.type]?e:{...e,DataOverlayRenderer:{...e.DataOverlayRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_PREVIEW_RENDER":return!r&&e.DataPreviewViewRenderer[t.payload.type]?e:{...e,DataPreviewViewRenderer:{...e.DataPreviewViewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_VIEW_RENDER":return!r&&e.DataViewRenderer[t.payload.type]?e:{...e,DataViewRenderer:{...e.DataViewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_FROM_PLUGIN":let n=!1;const o=[[t.payload.plugin.input_renderers||{},e.Inputrenderer],[t.payload.plugin.output_renderers||{},e.Outputrenderer],[t.payload.plugin.handle_preview_renderers||{},e.HandlePreviewRenderer],[t.payload.plugin.data_overlay_renderers||{},e.DataOverlayRenderer],[t.payload.plugin.data_preview_renderers||{},e.DataPreviewViewRenderer],[t.payload.plugin.data_view_renderers||{},e.DataViewRenderer]];for(const[e,t]of o){if(Object.keys(e).length>0)if(r)n=!0;else for(const r in e)if(!t[r]){n=!0;break}if(n)break}if(!n)return e;for(const[e,t]of o)for(const n in e)!r&&t[n]||(t[n]=e[n]);return{...e};default:return e}},QB=({children:t,plugins:n,fnrf_zst:r})=>{const[i,a]=e.useReducer(qB,KB),s=(e,t)=>{a({type:"EXTEND_FROM_PLUGIN",payload:{plugin:e},options:t})};return e.useEffect((()=>{for(const e in n){const t=n[e].RendererPlugin;t&&s(t);const i=n[e].renderpluginfactory;i&&s(i({React:o,fnrf_zst:r}))}}),[n]),o.createElement(eV.Provider,{value:{Inputrenderer:i.Inputrenderer,Outputrenderer:i.Outputrenderer,HandlePreviewRenderer:i.HandlePreviewRenderer,DataOverlayRenderer:i.DataOverlayRenderer,DataPreviewViewRenderer:i.DataPreviewViewRenderer,DataViewRenderer:i.DataViewRenderer,InLineRenderer:i.InLineRenderer,extendInputRenderMapping:(e,t,n)=>{a({type:"EXTEND_INPUT_RENDER",payload:{type:e,component:t},options:n})},extendOutputRenderMapping:(e,t,n)=>{a({type:"EXTEND_OUTPUT_RENDER",payload:{type:e,component:t},options:n})},extendHandlePreviewRenderMapping:(e,t,n)=>{a({type:"EXTEND_HANDLE_PREVIEW_RENDER",payload:{type:e,component:t},options:n})},extendDataOverlayRenderMapping:(e,t,n)=>{a({type:"EXTEND_DATA_OVERLAY_RENDER",payload:{type:e,component:t},options:n})},extendDataPreviewRenderMapping:(e,t,n)=>{a({type:"EXTEND_DATA_PREVIEW_RENDER",payload:{type:e,component:t},options:n})},extendDataViewRenderMapping:(e,t,n)=>{a({type:"EXTEND_DATA_VIEW_RENDER",payload:{type:e,component:t},options:n})},extendFromPlugin:s}},t)},eV=e.createContext({Inputrenderer:KB.Inputrenderer,Outputrenderer:KB.Outputrenderer,HandlePreviewRenderer:KB.HandlePreviewRenderer,DataOverlayRenderer:KB.DataOverlayRenderer,DataPreviewViewRenderer:KB.DataPreviewViewRenderer,DataViewRenderer:KB.DataViewRenderer,InLineRenderer:KB.InLineRenderer,extendInputRenderMapping:(e,t,n)=>{},extendOutputRenderMapping:(e,t,n)=>{},extendHandlePreviewRenderMapping:(e,t,n)=>{},extendDataOverlayRenderMapping:(e,t,n)=>{},extendDataPreviewRenderMapping:(e,t,n)=>{},extendDataViewRenderMapping:(e,t,n)=>{},extendFromPlugin:(e,t)=>{}}),tV=({component:e,...t})=>o.createElement(e,{...t}),nV=t=>{const n=e.useContext(FV).render_options(),[r]=rV(t.type,n.typemap||{});if(!r)return UB;const{DataOverlayRenderer:o,DataPreviewViewRenderer:i}=e.useContext(eV);return o[r]?o[r]:i[r]?i[r]:UB},rV=(e,t)=>{if("string"==typeof e)return e in t?[t[e],e]:[e,e];if("allOf"in e&&void 0!==e.allOf)return[void 0,void 0];if("anyOf"in e&&void 0!==e.anyOf){const n=e.anyOf.map((e=>rV(e,t)));for(const e of n)switch(e[0]){case"bool":return["bool",e[1]];case"enum":return["enum",e[1]];case"float":return["float",e[1]];case"int":return["int",e[1]];case"string":case"str":return["string",e[1]]}return[void 0,void 0]}return"type"in e&&void 0!==e.type&&"enum"===e.type?["enum","enum"]:[void 0,void 0]},oV=({io:t,typestring:n,preview:r,...i})=>{const[a,s]=e.useState(!1),[l,c]=e.useState(!1),u=o.useContext(FV),[d,f]=t?(t=>{const n=e.useContext(FV).render_options(),[r]=rV(t.type,n.typemap||{}),{HandlePreviewRenderer:o,DataPreviewViewRenderer:i}=e.useContext(eV),a=nV(t);return r?o[r]?[o[r],a]:i[r]?[i[r],a]:[UB,a]:[UB,a]})(t):[void 0,void 0],p=u.local_state((()=>u.reactflowRef));return o.createElement(BN,{open:a||l,onOpenChange:c},o.createElement(VN,{asChild:!0},o.createElement(ci,{id:t.id,"data-type":n,...i})),o.createElement(GN,{container:p},o.createElement(WN,{className:"iotooltipcontent",sideOffset:5},o.createElement("div",{className:"iotooltip_container"},o.createElement("div",{className:"iotooltip_header"},a?o.createElement(Xy,{onClick:()=>s(!1)}):o.createElement(Hy,{onClick:()=>s(!0)}),f&&o.createElement(Uy,{title:t.full_id,trigger:o.createElement(jy,null),onOpenChange:e=>{e&&t.try_get_full_value&&t.try_get_full_value(),s(e)}},o.createElement(tV,{component:f,io:t}))),d?o.createElement(tV,{component:d,io:t}):`no preview available for "${n}"`),o.createElement(HN,{className:"iotooltipcontentarrow"}))))},iV={"":[e=>e,e=>e],str_to_json:[e=>JSON.parse(e),e=>"string"==typeof e?e:JSON.stringify(e)],str_to_list:[e=>{try{const t=JSON.parse(e);return Array.isArray(t)?t:[t]}catch(t){try{return JSON.parse("["+e+"]")}catch(e){}}throw new Error("Invalid list")},e=>JSON.stringify(e)]},aV=({io:t})=>{const n=e.useContext(FV).render_options(),[r,i]=rV(t.render_options.type,n.typemap||{}),{Inputrenderer:a}=e.useContext(eV),s=r?t.value_options?.options?fD:a[r]:void 0,l=iV[(i&&n.inputconverter?.[i])??""];return o.createElement("div",{className:"nodeinput","data-type":r},o.createElement(oV,{io:t,typestring:r,position:So.Left,type:"target"}),s&&o.createElement("div",{className:"iovaluefield nodrag","data-type":r},o.createElement(s,{io:t,inputconverter:l})),o.createElement("div",{className:"ioname"},t.name),o.createElement(oV,{io:t,typestring:r,position:So.Right,type:"source"}))},sV=({io:t,typestring:n})=>{const{InLineRenderer:r}=e.useContext(eV);if(n&&r[n])return o.createElement("div",null,r[n]({io:t}));let i=t.fullvalue;return null==i&&(i=t.value),i=void 0===i?"":JSON.stringify(i).replace(/\\n/g,"\n"),i.length>63&&(i=i.slice(0,60)+"..."),o.createElement("div",null,i)},lV=({io:t})=>{const n=e.useContext(FV).render_options(),[r]=rV(t.type,n.typemap||{}),{Outputrenderer:i}=e.useContext(eV),a=r?i[r]:void 0;return o.createElement("div",{className:"nodeoutput","data-type":r},o.createElement(oV,{io:t,typestring:r,position:So.Right,type:"source"}),o.createElement("div",{className:"ioname"},t.name),a?o.createElement("div",{className:"iovaluefield nodrag"},o.createElement(a,{io:t})):o.createElement("div",{className:"iovaluefield"},o.createElement(sV,{io:t,typestring:r})))};function cV(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,"0")}`}function uV(e,t){const n=["","K","M","G","T"];let r=0;for(;e>=t&&r<n.length-1;)e/=t,r++;return[e.toFixed(2),n[r]]}const dV=({state:t,className:n="reacttqdm",...r})=>{const i=e.useRef(null),a=e.useRef(null);e.useEffect((()=>{const e=()=>{i.current&&a.current&&function(e,t,n={}){const{maxFontSize:r=100,minFontSize:o=6,decrementFactor:i=.9}=n;if(!e||!t)return;if(i>=1||i<=0)throw new Error("decrementFactor must be between 0 and 1");const a=e.getBoundingClientRect(),s=a.width,l=a.height;let c=r;t.style.whiteSpace="nowrap",t.style.display="inline-block",t.style.fontSize=c+"px";let u=t.getBoundingClientRect();for(;(u.width>s||u.height>l)&&c>o;)c*=i,t.style.fontSize=c+"px",u=t.getBoundingClientRect()}(i.current,a.current,{maxFontSize:12,decrementFactor:.9})};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]);const s=t.total?t.n/t.total*100:0;return o.createElement("div",{ref:i,className:n,...r},o.createElement("div",{style:{position:"relative",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}},o.createElement("div",{className:n+"-bar",style:{position:"absolute",width:"100%",height:"100%",overflow:"hidden"}},o.createElement("div",{className:n+"-progress",style:{width:`${s}%`,height:"100%"}})),o.createElement("div",{className:n+"-text",ref:a},function(e={n:0,elapsed:0,ascii:!1,unit:"it",unit_scale:!1,unit_divisor:1e3}){let t=e.total??null;const{n:n,unit_scale:r,elapsed:o,unit:i,unit_divisor:a,prefix:s="",rate:l,postfix:c=null,initial:u=0}=e;null!==t&&n>=t+.5&&(t=null);let d=n,f=t,p=l;r&&!0!==r&&1!==r&&(null!==t&&(f=t*r),d=n*r,void 0!==l&&(p=l*r));const m=cV(o);void 0===p&&o>0&&(p=(d-u)/o);const h=p?1/p:void 0,[g,y]=p?uV(p,a):[void 0,""],[b,v]=h?uV(h,1e3):[void 0,""],w=h&&h>1?b?`${b}${v}s/`+i:"?":(g||"?")+`${y}${i}/s`,x=r?uV(d,a).join(""):d.toString(),C=r&&null!==f?uV(f,a).join(""):f?.toString()??"?",k=p?cV(p&&null!==f?(f-d)/p:0):"?",E=s?`${s}: `:"";if(null!==t){const e=` ${x}/${C} [${m} < ${k}, ${w}${c??""}]`;return`${E}${(d/t*100).toFixed(0)}%${e}`}return`${E}${x}${i} [${m}, ${w}${c??""}]`}(t))))},fV=({node_data:t})=>{const n=e.useContext(FV);return o.createElement("div",{className:"nodeheader",title:t.description||t.node_name},o.createElement("div",{className:"nodeheader_element"},o.createElement(Zy,{fontSize:"inherit",className:"triggerbutton",onClick:()=>{n.on_node_action({type:"trigger",from_remote:!1,id:t.id})}}),o.createElement($y,{fontSize:"inherit",onClick:async()=>{n.logger.info("nodestatus",await(n.worker?.get_node_status(t.id)))}})),o.createElement("div",{className:"nodeheader_element nodeheader_title"},o.createElement("div",{className:"nodeheader_title_text"},t.node_name)),o.createElement("div",{className:"nodeheader_element"},o.createElement(Gy,{fontSize:"inherit"})))},pV=({node_data:t})=>{const n=t.render_options?.data?.src?t.io[t.render_options?.data?.src]:void 0,[r,i]=n?(t=>{const n=e.useContext(FV).render_options(),[r]=rV(t.type,n.typemap||{}),o=nV(t),{DataPreviewViewRenderer:i,DataViewRenderer:a}=e.useContext(eV);return r?a[r]?[a[r],o]:i[r]?[i[r],o]:[UB,o]:[UB,o]})(n):[void 0,void 0];return o.createElement("div",{className:"nodrag nodedatabody","data-src":t.render_options?.data?.src||""},r&&n&&o.createElement(Uy,{title:n.full_id,trigger:o.createElement("div",{className:"nodedatabutton"},o.createElement(tV,{component:r,io:n})),onOpenChange:e=>{e&&n?.try_get_full_value&&n?.try_get_full_value()}},o.createElement(tV,{component:i,io:n})))},mV=({node_data:e})=>{const t=Object.values(e.io).filter((e=>e.is_input)),n=Object.values(e.io).filter((e=>!e.is_input));return e.render_options,o.createElement("div",{className:"nodebody"},n.map((e=>e.hidden?null:o.createElement(lV,{key:e.id,io:e}))),o.createElement(pV,{node_data:e}),t.map((e=>e.hidden?null:o.createElement(aV,{key:e.id,io:e}))))},hV=({node_data:t})=>{const[n,r]=e.useState(t.name);e.useEffect((()=>{r(t.name)}),[t]);const i=e.useContext(FV);return o.createElement("input",{className:"nodename_input",value:n,onChange:e=>{r(e.target.value)},onBlur:e=>{const n=e.target.value;i.on_node_action({type:"update",from_remote:!1,id:t.id,node:{name:n}})}})},gV=({node_data:e})=>e.progress?o.createElement(dV,{style:{height:"idle"===e.progress.prefix?"0px":void 0},state:e.progress,className:"nodeprogress"}):null,yV=({node_data:e})=>o.createElement("div",{className:"nodefooter"},e.error&&o.createElement("div",{className:"nodeerror"},e.error),o.createElement(gV,{node_data:e})),bV=({io:e})=>{const t=o.useContext(FV).render_options(),[n,r]=rV(e.render_options.type,t.typemap||{}),{Inputrenderer:i}=o.useContext(eV),a=n?e.value_options?.options?fD:i[n]:void 0,s=iV[(r&&t.inputconverter?.[r])??""];return o.createElement("div",{className:"nodesettings_component"},o.createElement("div",null,e.name),a&&o.createElement(a,{io:e,inputconverter:s}),o.createElement("div",null,o.createElement("label",null,"hidden:",o.createElement("input",{className:"styledcheckbox",type:"checkbox",disabled:e.connected,onChange:t=>{e.set_hidden?.(t.target.checked)},checked:e.hidden}))))},vV=({io:e})=>o.createElement("div",{className:"nodesettings_component"},o.createElement("div",null,e.name),o.createElement("div",null,o.createElement("label",null,"hidden:",o.createElement("input",{className:"styledcheckbox",type:"checkbox",disabled:e.connected,onChange:t=>{e.set_hidden?.(t.target.checked)},checked:e.hidden})))),wV=({nodestore:e})=>{const t=e(),n=Object.values(t.io).filter((e=>e.is_input)),r=Object.values(t.io).filter((e=>!e.is_input));return o.createElement("div",{className:"nodesettings_content"},o.createElement("div",{className:"nodesettings_section"},o.createElement("div",{className:"nodesettings_component"},o.createElement("div",null,"Name"),o.createElement("div",null,o.createElement(hV,{node_data:t})))),o.createElement("div",{className:"nodesettings_section"},o.createElement("div",null,"Inputs"),n.map((e=>o.createElement(bV,{io:e,key:e.id})))),o.createElement("div",{className:"nodesettings_section"},o.createElement("div",null,"Outputs"),r.map((e=>o.createElement(vV,{io:e,key:e.id})))))},xV=()=>{const e=o.useContext(FV),t=e.local_state((e=>e.selected_nodes));if(0===t.length)return o.createElement("div",null,"Node Settings");if(t.length>1)return o.createElement("div",null,"Multiple Nodes Selected");const n=e.nodespace.get_node(t[0]);return n?o.createElement(wV,{nodestore:n}):o.createElement("div",null,"Node not found")},CV=()=>{const e=o.useContext(FV),t=e.local_settings((e=>e.view_settings.expand_node_props)),n=e.local_settings((e=>e.update_view_settings));return o.createElement(bC,{maxSize:"300px",direction:"left",expanded:void 0!==t&&t,containerClassName:"pos-right pos-top bg1 h-12",className:"nodesettings_content",onExpandChange:e=>{n({expand_node_props:e})}},o.createElement(xV,null))},kV=e=>({nodes:e.nodes,edges:e.edges,onNodesChange:e.onNodesChange,onEdgesChange:e.onEdgesChange,onConnect:e.onConnect}),EV={default:({data:t})=>{const n=t.UseNodeStore(),r=n.properties["frontend:collapsed"]||!1,{visualTrigger:i}=(t=>{const n=e.useContext(FV),[r,o]=e.useState(!1);return e.useEffect((()=>{n.worker?.call_hooks("node_mounted",t.id)}),[n.worker,t.id]),e.useEffect((()=>{let e;return t.in_trigger&&!r?o(!0):r&&(e=setTimeout((()=>o(!1)),200)),()=>clearTimeout(e)}),[t.in_trigger,r]),{visualTrigger:r}})(n);return o.createElement(o.Fragment,null,o.createElement("div",{className:"innernode"+(i?" intrigger":"")+(n.error?" error":"")},o.createElement(fV,{node_data:n}),o.createElement(hV,{node_data:n}),r?null:o.createElement(mV,{node_data:n}),o.createElement(yV,{node_data:n})))}},SV={default:({id:e,sourceX:t,sourceY:n,targetX:r,targetY:i,sourcePosition:a,targetPosition:s,data:l,...c})=>{const[u]=Lo({sourceX:t,sourceY:n,sourcePosition:a,targetX:r,targetY:i,targetPosition:s});return o.createElement(o.Fragment,null,o.createElement(go,{id:e,path:u,...c}))}},IV=()=>{const t=Zi();return e.useContext(FV).rf_instance=t,o.createElement(o.Fragment,null)},_V=()=>{const t=e.useContext(FV),n=Pi("Delete"),r=Hr(Cs,Z),i=Hr(xs,Z);if(n){for(const e of r)if(e.selected){if(!t.worker)return o.createElement(o.Fragment,null);if(!e.source||!e.target)return o.createElement(o.Fragment,null);if(!e.sourceHandle||!e.targetHandle)return o.createElement(o.Fragment,null);t.worker.remove_edge({src_nid:e.source,src_ioid:e.sourceHandle,trg_nid:e.target,trg_ioid:e.targetHandle})}for(const e of i)if(e.selected){if(!t.worker)return o.createElement(o.Fragment,null);t.worker.remove_node(e.id)}}return o.createElement(o.Fragment,null)},AV=({id:t,top:n,left:r,right:i,bottom:a,...s})=>{const{getNode:l,setNodes:c,addNodes:u,setEdges:d}=Zi(),f=e.useContext(FV),p=e.useCallback((()=>{const e=l(t);if(!e)return;const n={x:e.position.x+50,y:e.position.y+50};u({...e,id:`${e.id}-copy`,position:n})}),[t,l,u]),m=e.useCallback((()=>{f.on_node_action({type:"delete",id:t,from_remote:!1})}),[t,c,d]),h=f.nodespace.get_node(t,!1);if(!h)return o.createElement(o.Fragment,null," ");const g=h();return o.createElement("div",{style:{top:n,left:r,right:i,bottom:a},className:"context-menu",...s},o.createElement("p",{style:{fontWeight:"bold"}},o.createElement("small",null,g.name)),o.createElement("button",{onClick:p},"duplicate"),o.createElement("button",{onClick:m},"delete"))},NV=t=>{const n=e.useContext(FV),r=e.useRef(null);e.useEffect((()=>{n.reactflowRef=r.current}),[r]);const[i,a]=e.useState(null),s=e.useCallback((()=>a(null)),[a]),{nodes:l,edges:c,onNodesChange:u,onEdgesChange:d,onConnect:f}=n.useReactFlowStore(cN(kV));return o.createElement("div",{className:"reactflowlayer"},o.createElement(ws,{nodes:l,edges:c,onNodesChange:u,onEdgesChange:d,onConnect:f,nodeTypes:EV,edgeTypes:SV,minZoom:t.minZoom,maxZoom:t.maxZoom,fitView:!0,onSelectionChange:({nodes:e,edges:t})=>{const r=n.local_state.getState();n.local_state.setState({...r,selected_nodes:e.map((e=>e.id)),selected_edges:t.map((e=>e.id))})},ref:r,onPaneClick:s,panOnDrag:!t.static},o.createElement(IV,null),o.createElement(_V,null),o.createElement(zs,{color:"#888",gap:16,size:1}),t.minimap&&o.createElement(Ms,{nodeStrokeWidth:3,pannable:!t.static,zoomable:!t.static,zoomStep:3}),i&&o.createElement(AV,{onClick:s,...i})))},OV=e.createContext(void 0),RV=e.forwardRef(((t,n)=>{const{asChild:r,children:a,className:s,style:l,...c}=t,[u,d]=e.useState(!1),f=e.useRef(null),[p,m]=e.useState(null),[h,g]=e.useState({}),y=t.htime||300,b=t.vtime||300,v=t.hdelay||0,w=t.vdelay||200;e.useImperativeHandle(n,(()=>f.current),[]);let x;if(r&&o.isValidElement(a)){const e=a,t=[e.props.className,s,"smooth-expand",u?"smooth-expand-expanded":""].filter(Boolean).join(" "),n={...e.props.style,...l,...h};x=o.cloneElement(e,{ref:f,className:t,style:n,...c})}else x=o.createElement("div",{ref:f,...c,className:`smooth-expand ${u?"smooth-expand-expanded":""} ${s||""}`,style:{...l,...h}},a);const C=o.createElement(OV.Provider,{value:{isExpanded:u,toggleExpand:async()=>{f.current&&(u?await(async()=>{if(!f.current)return;if(!p)return;const e={transitionProperty:"width, left, height, top",transitionDuration:`${y}ms, ${y}ms, ${b}ms, ${b}ms`};g((t=>({...t,...e})));const[t,n,r,o]=p,i=new Promise((e=>{setTimeout((()=>{g((e=>({...e,left:`${t}px`,width:`${r}px`}))),e()}),w)})),a=new Promise((e=>{setTimeout((()=>{g((e=>({...e,top:`${n}px`,height:`${o}px`}))),e()}),v)})),s=Math.max(y+v,b+w),l=new Promise((e=>{setTimeout((()=>{e()}),s)}));await Promise.all([i,a,l]),f.current.style.transition="",g({}),d(!1)})():await(async()=>{if(!f.current)return;f.current.style.transition="none",f.current.style.position="",f.current.style.top="",f.current.style.left="",f.current.style.width="",f.current.style.height="";const e=f.current.getBoundingClientRect();m([e.left,e.top,e.width,e.height]),f.current.style.transition="none",g({position:"absolute",top:`${e.top}px`,left:`${e.left}px`,width:`${e.width}px`,height:`${e.height}px`}),g((e=>({...e,transitionProperty:"width, left, height, top",transitionDuration:`${y}ms, ${y}ms, ${b}ms, ${b}ms`}))),d(!0);const t=new Promise((e=>{setTimeout((()=>{g((e=>({...e,left:"0px",width:"100vw"}))),e()}),v)})),n=new Promise((e=>{setTimeout((()=>{g((e=>({...e,top:"0px",height:"100vh"}))),e()}),w)})),r=Math.max(y+v,b+w),o=new Promise((e=>{setTimeout((()=>{e()}),r)}));await Promise.all([t,n,o])})())}}},x);return u?i.createPortal(C,document.body):C}));RV.Trigger=function({children:t}){const n=e.useContext(OV);if(!n)throw new Error("SmoothExpandComponent.Trigger must be used within a SmoothExpandComponent");return o.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleExpand},t)},RV.Expanded=function({children:t}){const n=e.useContext(OV);if(!n)throw new Error("SmoothExpandComponent.Expanded must be used within a SmoothExpandComponent");return n.isExpanded?o.createElement(o.Fragment,null,t):null},RV.Collapsed=function({children:t}){const n=e.useContext(OV);if(!n)throw new Error("SmoothExpandComponent.Collapsed must be used within a SmoothExpandComponent");return n.isExpanded?null:o.createElement(o.Fragment,null,t)};const MV=o.createContext(void 0),TV=e.forwardRef(((t,n)=>{const{asChild:r,children:i,className:a,style:s,...l}=t,c=e.useRef(null);e.useImperativeHandle(n,(()=>c.current),[]);const[u,d]=e.useState(!1),f=e.useCallback((async()=>{try{const e=c.current;if(!e)return;if(u){const e=document;e.exitFullscreen?await e.exitFullscreen():e.mozCancelFullScreen?await e.mozCancelFullScreen():e.webkitExitFullscreen?await e.webkitExitFullscreen():e.msExitFullscreen&&await e.msExitFullscreen(),d(!1)}else e.requestFullscreen?await e.requestFullscreen():e.mozRequestFullScreen?await e.mozRequestFullScreen():e.webkitRequestFullscreen?await e.webkitRequestFullscreen():e.msRequestFullscreen&&await e.msRequestFullscreen(),d(!0)}catch(e){console.error("Error toggling fullscreen",e)}}),[u]);let p;if(e.useEffect((()=>{const e=()=>{const e=document.fullscreenElement;d(!!e)};return document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e),()=>{document.removeEventListener("fullscreenchange",e),document.removeEventListener("webkitfullscreenchange",e),document.removeEventListener("mozfullscreenchange",e),document.removeEventListener("MSFullscreenChange",e)}}),[]),r&&o.isValidElement(i)){const e=i,t=[e.props.className,a].filter(Boolean).join(" "),n={...e.props.style,...s};p=o.cloneElement(e,{ref:c,className:t,style:n,...l})}else p=o.createElement("div",{ref:c,...l,className:a,style:s},i);return o.createElement(MV.Provider,{value:{isFullScreen:u,toggleFullscreen:f}},p)}));TV.Trigger=function({children:e}){const t=o.useContext(MV);if(!t)throw new Error("FullScreenComponent.Trigger must be used within a FullScreenComponent");return o.createElement("div",{style:{cursor:"pointer"},onClick:t.toggleFullscreen},e)},TV.InFullScreen=function({children:e}){const t=o.useContext(MV);if(!t)throw new Error("FullScreenComponent.Expanded must be used within a FullScreenComponent");return t.isFullScreen?o.createElement(o.Fragment,null,e):null},TV.OutFullScreen=function({children:e}){const t=o.useContext(MV);if(!t)throw new Error("FullScreenComponent.Collapsed must be used within a FullScreenComponent");return t.isFullScreen?null:o.createElement(o.Fragment,null,e)};const PV=({fnrf_zst:t,header:n,flow:r,library:i})=>{const[a,s]=e.useState(t.options.worker),l=o.useRef(null);t.workermanager&&(t.workermanager.on_setWorker=s),t.set_worker(a),o.useEffect((()=>{t.auto_progress()}),[]),o.useEffect((()=>{t.local_state.setState({funcnodescontainerRef:l.current})}),[l]);const c=t.plugins();return o.createElement(QB,{plugins:c,fnrf_zst:t},o.createElement(FV.Provider,{value:t},o.createElement(RV,{asChild:!0},o.createElement(TV,{asChild:!0},o.createElement(hC,{style:{height:"100%",width:"100%",display:"flex",flexDirection:"column",flex:1}},o.createElement("div",{ref:l,className:"funcnodesreactflowcontainer funcnodescontainer"},n.show&&o.createElement(EC,{...n}),o.createElement("div",{className:"funcnodesreactflowbody"},o.createElement(NV,{...r}),a&&i.show&&o.createElement(sN,null),a&&r.showNodeSettings&&o.createElement(CV,null)),o.createElement("div",{className:"funcnodesflaotingmenu"},o.createElement(TV.OutFullScreen,null,r.allowExpand&&o.createElement(RV.Trigger,null,o.createElement(RV.Expanded,null,o.createElement(Ly,{size:"xl",style:{padding:"4px"}})),o.createElement(RV.Collapsed,null,o.createElement(zy,{size:"xl",style:{padding:"4px"}})))),r.allowFullScreen&&o.createElement(TV.Trigger,null,o.createElement(TV.OutFullScreen,null,o.createElement(jy,{size:"xl",style:{padding:"4px"}})),o.createElement(TV.InFullScreen,null,o.createElement(Fy,{size:"xl",style:{padding:"4px"}}))))))))))},DV={},jV={id:"",debug:!1,useWorkerManager:!0,show_library:!0,header:{show:!0,showmenu:!0},flow:{minimap:!0,static:!1,minZoom:.1,maxZoom:5,allowFullScreen:!0,allowExpand:!0,showNodeSettings:!0},library:{show:!0}},FV=e.createContext(Js(jV)),LV=e=>{let t=T(e,{...jV,id:Su()}).new_obj;if(!t.useWorkerManager&&void 0===t.worker)return o.createElement("div",null,"Error: If you don't use a worker manager, you must provide a default worker.");if(e.useWorkerManager&&void 0===e.workermanager_url)return o.createElement("div",null,"Error: If you use a worker manager, you must provide a worker manager url.");if(void 0===window.fnrf_zst&&(window.fnrf_zst=DV),void 0===DV[t.id]){const e=Js(t);DV[t.id]=e}if(t.worker&&t.worker.set_zustand(DV[t.id]),DV[t.id].options.debug=t.debug,t.useWorkerManager){const e=new Au(t.workermanager_url,DV[t.id]);DV[t.id].workermanager=e}return o.createElement(PV,{fnrf_zst:DV[t.id],header:t.header,library:t.library,flow:t.flow})},zV={set_io_value:({nid:t,ioid:n,value:r,set_default:o=!1})=>{const i=e.useContext(FV);i.worker?.set_io_value({nid:t,ioid:n,value:r,set_default:o})}};exports.FuncNodesContext=FV,exports.FuncNodesReactFlowZustand=Js,exports.FuncNodesWorker=Iu,exports.FuncnodesReactFlow=LV,exports.ReactFlowLayer=NV,exports.RenderMappingProvider=QB,exports.WebSocketWorker=_u,exports.assert_full_node=z,exports.deep_update=T,exports.default=e=>{const t=new Zs("FuncNodes",e.debug?"debug":"info");t.debug("Initalizing FuncNodes with props:",e);let n=T(e,{...jV,id:Su()}).new_obj;if(void 0===e.worker&&void 0!==e.worker_url&&(n.useWorkerManager=!1,n.worker=new _u({url:e.worker_url,uuid:n.id,on_sync_complete:n.on_sync_complete})),void 0!==n.worker){const e=Js(n);n.worker.set_zustand(e)}if(void 0!==e.fnw_url){if(void 0===n.worker)throw new Error("defining fnw_url requires a worker to be defined");const t=async function(e,t=!0){try{const n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch from URL: ${n.status} ${n.statusText}`);const r=await n.blob();return await new Promise(((e,n)=>{const o=new FileReader;o.onload=()=>{const r=o.result;"string"!=typeof r&&(n("Failed to convert URL to Base64: No result from FileReader"),n(o.error)),e(t?r.split(",")[1]:r)},o.onerror=()=>n(o.error),o.readAsDataURL(r)}))}catch(e){throw console.error("Error converting URL to Base64:",e),e}}(e.fnw_url),r=n.worker.on_sync_complete,o=async e=>{const n=await t;e.on_sync_complete=r,await e.update_from_export(n)};n.worker.on_sync_complete=o}return t.debug("Initalizing FuncnodesReactFlow with props:",n),o.createElement("div",{className:"FuncnodesApp"},o.createElement(LV,{...n}))},exports.helperfunctions=zV;
157
157
  //# sourceMappingURL=index.umd.js.map