@linkdlab/funcnodes_react_flow 2.1.1 → 2.1.2
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.
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.umd.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1097,4 +1097,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
1097
1097
|
${r}
|
|
1098
1098
|
return FuncNodesPlugin;
|
|
1099
1099
|
})();
|
|
1100
|
-
`)(F,vie);this.add_plugin(t,a)}catch(o){o instanceof Error?this.context.rf.logger.error(`Error building plugin ${t}`,o):this.context.rf.logger.error(`Error building plugin ${t}`,new Error(String(o))),this.stateManager.toaster?.error({title:"Error",description:`Error building plugin ${t}: ${o}`,duration:5e3})}}}}class _qe extends dS{constructor(t){super(t),this.on_rf_node_change=n=>{const r=this.useReactFlowStore.getState();for(const o of n)switch(o.type){case"position":if(o.position){const a=r.getNode(o.id);if(a===void 0)continue;a.type==="group"?this.nodespaceManager.change_group_position(o):this.nodespaceManager.change_fn_node_position(o),a.data.groupID&&this.nodespaceManager.auto_resize_group(a.data.groupID)}break;case"dimensions":if(o.dimensions){const a=r.getNode(o.id);if(a===void 0)continue;a.type==="group"?this.nodespaceManager.change_group_dimensions(o):this.nodespaceManager.change_fn_node_dimensions(o),a.data.groupID&&this.nodespaceManager.auto_resize_group(a.data.groupID)}break}},this.on_rf_edge_change=n=>{},this.on_connect=n=>{n.source===null||n.target===null||n.sourceHandle===null||n.targetHandle===null||!this.workerManager.worker||this.workerManager.worker.api.edge.add_edge({src_nid:n.source,src_ioid:n.sourceHandle,trg_nid:n.target,trg_ioid:n.targetHandle,replace:!0})},this.useReactFlowStore=d6e({on_node_change:this.on_rf_node_change.bind(this),on_edge_change:this.on_rf_edge_change.bind(this),on_connect:this.on_connect.bind(this)})}}let Cqe=class{constructor(t){this.reactflowRef=null,this.dev_settings={debug:H_()},this.options=t,this.logger=t.logger??new n5("fn",H_()?BG:VG);const n={rf:this};this._nodespaceManager=new gqe(n),this._libManager=new bqe(n),this._workerManager=new vqe(n),this._stateManager=new Sqe(n),this._pluginManager=new Eqe(n),this._reactFlowManager=new _qe(n)}getNodespaceManager(){return this._nodespaceManager}getLibManager(){return this._libManager}getWorkerManager(){return this._workerManager}getStateManager(){return this._stateManager}getPluginManager(){return this._pluginManager}getReactFlowManager(){return this._reactFlowManager}get nodespace(){return this._nodespaceManager.nodespace}get on_node_action(){return this._nodespaceManager.on_node_action.bind(this._nodespaceManager)}get on_edge_action(){return this._nodespaceManager.on_edge_action.bind(this._nodespaceManager)}get on_group_action(){return this._nodespaceManager.on_group_action.bind(this._nodespaceManager)}get clear_all(){return this._nodespaceManager.clear_all.bind(this._nodespaceManager)}get center_node(){return this._nodespaceManager.center_node.bind(this._nodespaceManager)}get center_all(){return this._nodespaceManager.center_all.bind(this._nodespaceManager)}get lib(){return this._libManager.lib}get set_worker(){return this._workerManager.set_worker.bind(this._workerManager)}get workermanager(){return this._workerManager.workermanager}set workermanager(t){this._workerManager.workermanager=t}get worker(){return this._workerManager.worker}get workers(){return this._workerManager.workers}get workerstate(){return this._workerManager.workerstate}get _unsubscribeFromWorker(){return this._workerManager._unsubscribeFromWorker?.bind(this._workerManager)}get set_progress(){return this._stateManager.set_progress.bind(this._stateManager)}get auto_progress(){return this._stateManager.auto_progress.bind(this._stateManager)}get progress_state(){return this._stateManager.progress_state}get local_settings(){return this._stateManager.local_settings}get local_state(){return this._stateManager.local_state}update_view_settings(t){this._stateManager.update_view_settings(t)}get plugins(){return this._pluginManager.plugins.bind(this._pluginManager)}get add_plugin(){return this._pluginManager.add_plugin.bind(this._pluginManager)}get add_packed_plugin(){return this._pluginManager.add_packed_plugin.bind(this._pluginManager)}get render_options(){return this._pluginManager.render_options.bind(this._pluginManager)}get update_render_options(){return this._pluginManager.update_render_options.bind(this._pluginManager)}get useReactFlowStore(){return this._reactFlowManager.useReactFlowStore.bind(this._reactFlowManager)}get rf_instance(){return this._reactFlowManager.rf_instance}set rf_instance(t){this._reactFlowManager.rf_instance=t}};const Tqe=o5(lwe,e=>(e.id=vP(),e)),Aqe=e=>{if(!e.useWorkerManager&&e.worker===void 0)throw new Error("If you don't use a worker manager, you must provide a default worker.");if(e.useWorkerManager&&e.workermanager_url===void 0)throw new Error("Error: If you use a worker manager, you must provide a worker managerurl.")},e5={};window.fnrf_zst===void 0&&(window.fnrf_zst=e5);const U$=e=>{const[t,n]=F.useState(void 0),[r,o]=F.useState(void 0),[a,s]=F.useState(!1);if(F.useEffect(()=>{const u=Tqe(e);u.logger=u.logger||new n5("FuncNodes",u.debug?"debug":"info"),u.logger.debug("Initializing FuncNodes with props:",u),n(u),s(!1)},[e]),F.useEffect(()=>{if(!t)return;t.logger?.debug("Initializing/Getting Zustand store");const u=e5[t.id];if(u===void 0){const f=new Cqe(t);e5[t.id]=f,o(f)}else o(u),u.options.debug=t.debug},[t?.id,t?.debug]),F.useEffect(()=>{if(!(!t||!r)&&!(t.useWorkerManager||!t.worker_url))if(t.logger?.debug("Worker effect running"),t.worker){t.worker.set_zustand(r);return}else{t.logger?.debug("Creating WebSocket worker");const u=new BZ({url:t.worker_url,uuid:t.id,on_sync_complete:t.on_sync_complete});return u.set_zustand(r),n(f=>f&&{...f,worker:u,useWorkerManager:!1}),()=>{t.logger?.debug("Disconnecting worker"),u.disconnect(),n(f=>f&&{...f,worker:void 0})}}},[t?.worker_url,t?.id,t?.useWorkerManager,r,t?.on_sync_complete]),F.useEffect(()=>{if(!t?.fnw_url||!t.worker)return;t.logger?.debug("Loading fnw_url data");let u=!1;const f=t.worker.getSyncManager().on_sync_complete;return(async()=>{try{const m=await Lie(t.fnw_url);!u&&t.worker&&(t.worker.getSyncManager().on_sync_complete=async g=>{await g.update_from_export(m),t.worker.getSyncManager().on_sync_complete=f,f&&f(g)})}catch(m){m instanceof Error?t.logger?.error("Failed to load fnw_url:",m):t.logger?.error("Failed to load fnw_url:",new Error(String(m)))}})(),()=>{u=!0,t.worker&&(t.worker.getSyncManager().on_sync_complete=f)}},[t?.fnw_url,t?.worker]),F.useEffect(()=>{if(!t||!r||!t.useWorkerManager)return;if(!t.workermanager_url)throw new Error("Error: If you use a worker manager, you must provide a worker manager url.");r.logger.info("Worker manager effect running");const u=!r.workermanager,f=r.workermanager&&r.workermanager.wsuri!==t.workermanager_url;if(u||f){r.workermanager&&(r.logger.info("Removing existing worker manager"),r.workermanager.remove(),r.workermanager=void 0),r.logger.info("Creating new worker manager");const p=new owe(t.workermanager_url,r);return r.workermanager=p,n(m=>m&&{...m,workermanager:p}),()=>{r.logger.info("Worker manager cleanup running"),r.workermanager===p?(r.logger.info("Removing worker manager instance"),p.remove(),r.workermanager=void 0):r.logger.info("Worker manager instance mismatch, skipping cleanup")}}else{r.logger.info("Worker manager already initialized with correct URL");return}},[t?.useWorkerManager,t?.workermanager_url,t?.id,r]),F.useEffect(()=>{if(!t||!r||a)return;(t.useWorkerManager?r.workermanager!==void 0:t.worker!==void 0)&&t.on_ready&&typeof t.on_ready=="function"&&(t.logger?.debug("Firing on_ready callback"),t.on_ready({fnrf_zst:r}),s(!0))},[t,r,a,t?.useWorkerManager,r?.workermanager,t?.worker]),t===void 0||r===void 0)return A.jsx("div",{children:"Loading..."});try{Aqe(t)}catch(u){return A.jsx(Bie,{error:u})}return A.jsx("div",{className:"FuncnodesApp",children:A.jsx(xge,{available_themes:VZ,children:A.jsx(rSe,{duration:5e3,children:A.jsx(hqe,{fnrf_zst:r,header:t.header,library:t.library,flow:t.flow})})})})},H$=(e,t)=>{t===void 0&&(t={});const{element:n,eleid:r}=typeof e=="string"?{element:document.getElementById(e),eleid:e}:{element:e,eleid:e.id};Oie.createRoot(n).render(A.jsx(F.StrictMode,{children:A.jsx(U$,{...t,id:t.id||r})}))};window.FuncNodes=H$;window.FuncNodes.version=
|
|
1100
|
+
`)(F,vie);this.add_plugin(t,a)}catch(o){o instanceof Error?this.context.rf.logger.error(`Error building plugin ${t}`,o):this.context.rf.logger.error(`Error building plugin ${t}`,new Error(String(o))),this.stateManager.toaster?.error({title:"Error",description:`Error building plugin ${t}: ${o}`,duration:5e3})}}}}class _qe extends dS{constructor(t){super(t),this.on_rf_node_change=n=>{const r=this.useReactFlowStore.getState();for(const o of n)switch(o.type){case"position":if(o.position){const a=r.getNode(o.id);if(a===void 0)continue;a.type==="group"?this.nodespaceManager.change_group_position(o):this.nodespaceManager.change_fn_node_position(o),a.data.groupID&&this.nodespaceManager.auto_resize_group(a.data.groupID)}break;case"dimensions":if(o.dimensions){const a=r.getNode(o.id);if(a===void 0)continue;a.type==="group"?this.nodespaceManager.change_group_dimensions(o):this.nodespaceManager.change_fn_node_dimensions(o),a.data.groupID&&this.nodespaceManager.auto_resize_group(a.data.groupID)}break}},this.on_rf_edge_change=n=>{},this.on_connect=n=>{n.source===null||n.target===null||n.sourceHandle===null||n.targetHandle===null||!this.workerManager.worker||this.workerManager.worker.api.edge.add_edge({src_nid:n.source,src_ioid:n.sourceHandle,trg_nid:n.target,trg_ioid:n.targetHandle,replace:!0})},this.useReactFlowStore=d6e({on_node_change:this.on_rf_node_change.bind(this),on_edge_change:this.on_rf_edge_change.bind(this),on_connect:this.on_connect.bind(this)})}}let Cqe=class{constructor(t){this.reactflowRef=null,this.dev_settings={debug:H_()},this.options=t,this.logger=t.logger??new n5("fn",H_()?BG:VG);const n={rf:this};this._nodespaceManager=new gqe(n),this._libManager=new bqe(n),this._workerManager=new vqe(n),this._stateManager=new Sqe(n),this._pluginManager=new Eqe(n),this._reactFlowManager=new _qe(n)}getNodespaceManager(){return this._nodespaceManager}getLibManager(){return this._libManager}getWorkerManager(){return this._workerManager}getStateManager(){return this._stateManager}getPluginManager(){return this._pluginManager}getReactFlowManager(){return this._reactFlowManager}get nodespace(){return this._nodespaceManager.nodespace}get on_node_action(){return this._nodespaceManager.on_node_action.bind(this._nodespaceManager)}get on_edge_action(){return this._nodespaceManager.on_edge_action.bind(this._nodespaceManager)}get on_group_action(){return this._nodespaceManager.on_group_action.bind(this._nodespaceManager)}get clear_all(){return this._nodespaceManager.clear_all.bind(this._nodespaceManager)}get center_node(){return this._nodespaceManager.center_node.bind(this._nodespaceManager)}get center_all(){return this._nodespaceManager.center_all.bind(this._nodespaceManager)}get lib(){return this._libManager.lib}get set_worker(){return this._workerManager.set_worker.bind(this._workerManager)}get workermanager(){return this._workerManager.workermanager}set workermanager(t){this._workerManager.workermanager=t}get worker(){return this._workerManager.worker}get workers(){return this._workerManager.workers}get workerstate(){return this._workerManager.workerstate}get _unsubscribeFromWorker(){return this._workerManager._unsubscribeFromWorker?.bind(this._workerManager)}get set_progress(){return this._stateManager.set_progress.bind(this._stateManager)}get auto_progress(){return this._stateManager.auto_progress.bind(this._stateManager)}get progress_state(){return this._stateManager.progress_state}get local_settings(){return this._stateManager.local_settings}get local_state(){return this._stateManager.local_state}update_view_settings(t){this._stateManager.update_view_settings(t)}get plugins(){return this._pluginManager.plugins.bind(this._pluginManager)}get add_plugin(){return this._pluginManager.add_plugin.bind(this._pluginManager)}get add_packed_plugin(){return this._pluginManager.add_packed_plugin.bind(this._pluginManager)}get render_options(){return this._pluginManager.render_options.bind(this._pluginManager)}get update_render_options(){return this._pluginManager.update_render_options.bind(this._pluginManager)}get useReactFlowStore(){return this._reactFlowManager.useReactFlowStore.bind(this._reactFlowManager)}get rf_instance(){return this._reactFlowManager.rf_instance}set rf_instance(t){this._reactFlowManager.rf_instance=t}};const Tqe=o5(lwe,e=>(e.id=vP(),e)),Aqe=e=>{if(!e.useWorkerManager&&e.worker===void 0)throw new Error("If you don't use a worker manager, you must provide a default worker.");if(e.useWorkerManager&&e.workermanager_url===void 0)throw new Error("Error: If you use a worker manager, you must provide a worker managerurl.")},e5={};window.fnrf_zst===void 0&&(window.fnrf_zst=e5);const U$=e=>{const[t,n]=F.useState(void 0),[r,o]=F.useState(void 0),[a,s]=F.useState(!1);if(F.useEffect(()=>{const u=Tqe(e);u.logger=u.logger||new n5("FuncNodes",u.debug?"debug":"info"),u.logger.debug("Initializing FuncNodes with props:",u),n(u),s(!1)},[e]),F.useEffect(()=>{if(!t)return;t.logger?.debug("Initializing/Getting Zustand store");const u=e5[t.id];if(u===void 0){const f=new Cqe(t);e5[t.id]=f,o(f)}else o(u),u.options.debug=t.debug},[t?.id,t?.debug]),F.useEffect(()=>{if(!(!t||!r)&&!(t.useWorkerManager||!t.worker_url))if(t.logger?.debug("Worker effect running"),t.worker){t.worker.set_zustand(r);return}else{t.logger?.debug("Creating WebSocket worker");const u=new BZ({url:t.worker_url,uuid:t.id,on_sync_complete:t.on_sync_complete});return u.set_zustand(r),n(f=>f&&{...f,worker:u,useWorkerManager:!1}),()=>{t.logger?.debug("Disconnecting worker"),u.disconnect(),n(f=>f&&{...f,worker:void 0})}}},[t?.worker_url,t?.id,t?.useWorkerManager,r,t?.on_sync_complete]),F.useEffect(()=>{if(!t?.fnw_url||!t.worker)return;t.logger?.debug("Loading fnw_url data");let u=!1;const f=t.worker.getSyncManager().on_sync_complete;return(async()=>{try{const m=await Lie(t.fnw_url);!u&&t.worker&&(t.worker.getSyncManager().on_sync_complete=async g=>{await g.update_from_export(m),t.worker.getSyncManager().on_sync_complete=f,f&&f(g)})}catch(m){m instanceof Error?t.logger?.error("Failed to load fnw_url:",m):t.logger?.error("Failed to load fnw_url:",new Error(String(m)))}})(),()=>{u=!0,t.worker&&(t.worker.getSyncManager().on_sync_complete=f)}},[t?.fnw_url,t?.worker]),F.useEffect(()=>{if(!t||!r||!t.useWorkerManager)return;if(!t.workermanager_url)throw new Error("Error: If you use a worker manager, you must provide a worker manager url.");r.logger.info("Worker manager effect running");const u=!r.workermanager,f=r.workermanager&&r.workermanager.wsuri!==t.workermanager_url;if(u||f){r.workermanager&&(r.logger.info("Removing existing worker manager"),r.workermanager.remove(),r.workermanager=void 0),r.logger.info("Creating new worker manager");const p=new owe(t.workermanager_url,r);return r.workermanager=p,n(m=>m&&{...m,workermanager:p}),()=>{r.logger.info("Worker manager cleanup running"),r.workermanager===p?(r.logger.info("Removing worker manager instance"),p.remove(),r.workermanager=void 0):r.logger.info("Worker manager instance mismatch, skipping cleanup")}}else{r.logger.info("Worker manager already initialized with correct URL");return}},[t?.useWorkerManager,t?.workermanager_url,t?.id,r]),F.useEffect(()=>{if(!t||!r||a)return;(t.useWorkerManager?r.workermanager!==void 0:t.worker!==void 0)&&t.on_ready&&typeof t.on_ready=="function"&&(t.logger?.debug("Firing on_ready callback"),t.on_ready({fnrf_zst:r}),s(!0))},[t,r,a,t?.useWorkerManager,r?.workermanager,t?.worker]),t===void 0||r===void 0)return A.jsx("div",{children:"Loading..."});try{Aqe(t)}catch(u){return A.jsx(Bie,{error:u})}return A.jsx("div",{className:"FuncnodesApp",children:A.jsx(xge,{available_themes:VZ,children:A.jsx(rSe,{duration:5e3,children:A.jsx(hqe,{fnrf_zst:r,header:t.header,library:t.library,flow:t.flow})})})})},H$=(e,t)=>{t===void 0&&(t={});const{element:n,eleid:r}=typeof e=="string"?{element:document.getElementById(e),eleid:e}:{element:e,eleid:e.id};Oie.createRoot(n).render(A.jsx(F.StrictMode,{children:A.jsx(U$,{...t,id:t.id||r})}))};window.FuncNodes=H$;window.FuncNodes.version="2.1.2";window.FuncNodes.utils={logger:{ConsoleLogger:n5,DivLogger:Mie,BaseLogger:t5,DEBUG:BG,INFO:VG,WARN:Rie,ERROR:Nie}};exports.ArrayBufferDataStructure=SP;exports.CTypeStructure=xP;exports.DataPreviewViewRendererToHandlePreviewRenderer=ZP;exports.DataStructure=Fu;exports.DataViewRendererToDataPreviewViewRenderer=Ta;exports.DataViewRendererToInputRenderer=JP;exports.DataViewRendererToOverlayRenderer=_C;exports.FuncNodes=U$;exports.FuncNodesRenderer=H$;exports.FuncNodesWorker=EP;exports.JSONStructure=ep;exports.LATEST_VERSION=V$;exports.TextStructure=wP;exports.useFuncNodesContext=qn;exports.useIOGetFullValue=oS;exports.useIOStore=Hr;exports.useIOValueStore=DK;exports.useNodeStore=ns;exports.useSetIOValue=zm;exports.useSetIOValueOptions=IK;exports.useWorkerApi=ta;
|
package/dist/index.es.js
CHANGED
|
@@ -98191,7 +98191,7 @@ const uoe = (e) => {
|
|
|
98191
98191
|
);
|
|
98192
98192
|
};
|
|
98193
98193
|
window.FuncNodes = coe;
|
|
98194
|
-
window.FuncNodes.version =
|
|
98194
|
+
window.FuncNodes.version = "2.1.2";
|
|
98195
98195
|
window.FuncNodes.utils = {
|
|
98196
98196
|
logger: {
|
|
98197
98197
|
ConsoleLogger: y5,
|
package/dist/index.umd.js
CHANGED
|
@@ -1097,4 +1097,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
1097
1097
|
${r}
|
|
1098
1098
|
return FuncNodesPlugin;
|
|
1099
1099
|
})();
|
|
1100
|
-
`)(F,Kre);this.add_plugin(t,a)}catch(o){o instanceof Error?this.context.rf.logger.error(`Error building plugin ${t}`,o):this.context.rf.logger.error(`Error building plugin ${t}`,new Error(String(o))),this.stateManager.toaster?.error({title:"Error",description:`Error building plugin ${t}: ${o}`,duration:5e3})}}}}class yGe extends nv{constructor(t){super(t),this.on_rf_node_change=n=>{const r=this.useReactFlowStore.getState();for(const o of n)switch(o.type){case"position":if(o.position){const a=r.getNode(o.id);if(a===void 0)continue;a.type==="group"?this.nodespaceManager.change_group_position(o):this.nodespaceManager.change_fn_node_position(o),a.data.groupID&&this.nodespaceManager.auto_resize_group(a.data.groupID)}break;case"dimensions":if(o.dimensions){const a=r.getNode(o.id);if(a===void 0)continue;a.type==="group"?this.nodespaceManager.change_group_dimensions(o):this.nodespaceManager.change_fn_node_dimensions(o),a.data.groupID&&this.nodespaceManager.auto_resize_group(a.data.groupID)}break}},this.on_rf_edge_change=n=>{},this.on_connect=n=>{n.source===null||n.target===null||n.sourceHandle===null||n.targetHandle===null||!this.workerManager.worker||this.workerManager.worker.api.edge.add_edge({src_nid:n.source,src_ioid:n.sourceHandle,trg_nid:n.target,trg_ioid:n.targetHandle,replace:!0})},this.useReactFlowStore=hBe({on_node_change:this.on_rf_node_change.bind(this),on_edge_change:this.on_rf_edge_change.bind(this),on_connect:this.on_connect.bind(this)})}}let bGe=class{constructor(t){this.reactflowRef=null,this.dev_settings={debug:$w()},this.options=t,this.logger=t.logger??new jM("fn",$w()?rF:oF);const n={rf:this};this._nodespaceManager=new uGe(n),this._libManager=new fGe(n),this._workerManager=new dGe(n),this._stateManager=new pGe(n),this._pluginManager=new gGe(n),this._reactFlowManager=new yGe(n)}getNodespaceManager(){return this._nodespaceManager}getLibManager(){return this._libManager}getWorkerManager(){return this._workerManager}getStateManager(){return this._stateManager}getPluginManager(){return this._pluginManager}getReactFlowManager(){return this._reactFlowManager}get nodespace(){return this._nodespaceManager.nodespace}get on_node_action(){return this._nodespaceManager.on_node_action.bind(this._nodespaceManager)}get on_edge_action(){return this._nodespaceManager.on_edge_action.bind(this._nodespaceManager)}get on_group_action(){return this._nodespaceManager.on_group_action.bind(this._nodespaceManager)}get clear_all(){return this._nodespaceManager.clear_all.bind(this._nodespaceManager)}get center_node(){return this._nodespaceManager.center_node.bind(this._nodespaceManager)}get center_all(){return this._nodespaceManager.center_all.bind(this._nodespaceManager)}get lib(){return this._libManager.lib}get set_worker(){return this._workerManager.set_worker.bind(this._workerManager)}get workermanager(){return this._workerManager.workermanager}set workermanager(t){this._workerManager.workermanager=t}get worker(){return this._workerManager.worker}get workers(){return this._workerManager.workers}get workerstate(){return this._workerManager.workerstate}get _unsubscribeFromWorker(){return this._workerManager._unsubscribeFromWorker?.bind(this._workerManager)}get set_progress(){return this._stateManager.set_progress.bind(this._stateManager)}get auto_progress(){return this._stateManager.auto_progress.bind(this._stateManager)}get progress_state(){return this._stateManager.progress_state}get local_settings(){return this._stateManager.local_settings}get local_state(){return this._stateManager.local_state}update_view_settings(t){this._stateManager.update_view_settings(t)}get plugins(){return this._pluginManager.plugins.bind(this._pluginManager)}get add_plugin(){return this._pluginManager.add_plugin.bind(this._pluginManager)}get add_packed_plugin(){return this._pluginManager.add_packed_plugin.bind(this._pluginManager)}get render_options(){return this._pluginManager.render_options.bind(this._pluginManager)}get update_render_options(){return this._pluginManager.update_render_options.bind(this._pluginManager)}get useReactFlowStore(){return this._reactFlowManager.useReactFlowStore.bind(this._reactFlowManager)}get rf_instance(){return this._reactFlowManager.rf_instance}set rf_instance(t){this._reactFlowManager.rf_instance=t}};const vGe=$M(OSe,e=>(e.id=Ej(),e)),SGe=e=>{if(!e.useWorkerManager&&e.worker===void 0)throw new Error("If you don't use a worker manager, you must provide a default worker.");if(e.useWorkerManager&&e.workermanager_url===void 0)throw new Error("Error: If you use a worker manager, you must provide a worker managerurl.")},vz={};window.fnrf_zst===void 0&&(window.fnrf_zst=vz);const Sz=e=>{const[t,n]=F.useState(void 0),[r,o]=F.useState(void 0),[a,s]=F.useState(!1);if(F.useEffect(()=>{const u=vGe(e);u.logger=u.logger||new jM("FuncNodes",u.debug?"debug":"info"),u.logger.debug("Initializing FuncNodes with props:",u),n(u),s(!1)},[e]),F.useEffect(()=>{if(!t)return;t.logger?.debug("Initializing/Getting Zustand store");const u=vz[t.id];if(u===void 0){const f=new bGe(t);vz[t.id]=f,o(f)}else o(u),u.options.debug=t.debug},[t?.id,t?.debug]),F.useEffect(()=>{if(!(!t||!r)&&!(t.useWorkerManager||!t.worker_url))if(t.logger?.debug("Worker effect running"),t.worker){t.worker.set_zustand(r);return}else{t.logger?.debug("Creating WebSocket worker");const u=new c8({url:t.worker_url,uuid:t.id,on_sync_complete:t.on_sync_complete});return u.set_zustand(r),n(f=>f&&{...f,worker:u,useWorkerManager:!1}),()=>{t.logger?.debug("Disconnecting worker"),u.disconnect(),n(f=>f&&{...f,worker:void 0})}}},[t?.worker_url,t?.id,t?.useWorkerManager,r,t?.on_sync_complete]),F.useEffect(()=>{if(!t?.fnw_url||!t.worker)return;t.logger?.debug("Loading fnw_url data");let u=!1;const f=t.worker.getSyncManager().on_sync_complete;return(async()=>{try{const m=await voe(t.fnw_url);!u&&t.worker&&(t.worker.getSyncManager().on_sync_complete=async g=>{await g.update_from_export(m),t.worker.getSyncManager().on_sync_complete=f,f&&f(g)})}catch(m){m instanceof Error?t.logger?.error("Failed to load fnw_url:",m):t.logger?.error("Failed to load fnw_url:",new Error(String(m)))}})(),()=>{u=!0,t.worker&&(t.worker.getSyncManager().on_sync_complete=f)}},[t?.fnw_url,t?.worker]),F.useEffect(()=>{if(!t||!r||!t.useWorkerManager)return;if(!t.workermanager_url)throw new Error("Error: If you use a worker manager, you must provide a worker manager url.");r.logger.info("Worker manager effect running");const u=!r.workermanager,f=r.workermanager&&r.workermanager.wsuri!==t.workermanager_url;if(u||f){r.workermanager&&(r.logger.info("Removing existing worker manager"),r.workermanager.remove(),r.workermanager=void 0),r.logger.info("Creating new worker manager");const p=new ASe(t.workermanager_url,r);return r.workermanager=p,n(m=>m&&{...m,workermanager:p}),()=>{r.logger.info("Worker manager cleanup running"),r.workermanager===p?(r.logger.info("Removing worker manager instance"),p.remove(),r.workermanager=void 0):r.logger.info("Worker manager instance mismatch, skipping cleanup")}}else{r.logger.info("Worker manager already initialized with correct URL");return}},[t?.useWorkerManager,t?.workermanager_url,t?.id,r]),F.useEffect(()=>{if(!t||!r||a)return;(t.useWorkerManager?r.workermanager!==void 0:t.worker!==void 0)&&t.on_ready&&typeof t.on_ready=="function"&&(t.logger?.debug("Firing on_ready callback"),t.on_ready({fnrf_zst:r}),s(!0))},[t,r,a,t?.useWorkerManager,r?.workermanager,t?.worker]),t===void 0||r===void 0)return A.jsx("div",{children:"Loading..."});try{SGe(t)}catch(u){return A.jsx(Soe,{error:u})}return A.jsx("div",{className:"FuncnodesApp",children:A.jsx(Jhe,{available_themes:f8,children:A.jsx(Mve,{duration:5e3,children:A.jsx(sGe,{fnrf_zst:r,header:t.header,library:t.library,flow:t.flow})})})})},xz=(e,t)=>{t===void 0&&(t={});const{element:n,eleid:r}=typeof e=="string"?{element:document.getElementById(e),eleid:e}:{element:e,eleid:e.id};soe.createRoot(n).render(A.jsx(F.StrictMode,{children:A.jsx(Sz,{...t,id:t.id||r})}))};window.FuncNodes=xz,window.FuncNodes.version=
|
|
1100
|
+
`)(F,Kre);this.add_plugin(t,a)}catch(o){o instanceof Error?this.context.rf.logger.error(`Error building plugin ${t}`,o):this.context.rf.logger.error(`Error building plugin ${t}`,new Error(String(o))),this.stateManager.toaster?.error({title:"Error",description:`Error building plugin ${t}: ${o}`,duration:5e3})}}}}class yGe extends nv{constructor(t){super(t),this.on_rf_node_change=n=>{const r=this.useReactFlowStore.getState();for(const o of n)switch(o.type){case"position":if(o.position){const a=r.getNode(o.id);if(a===void 0)continue;a.type==="group"?this.nodespaceManager.change_group_position(o):this.nodespaceManager.change_fn_node_position(o),a.data.groupID&&this.nodespaceManager.auto_resize_group(a.data.groupID)}break;case"dimensions":if(o.dimensions){const a=r.getNode(o.id);if(a===void 0)continue;a.type==="group"?this.nodespaceManager.change_group_dimensions(o):this.nodespaceManager.change_fn_node_dimensions(o),a.data.groupID&&this.nodespaceManager.auto_resize_group(a.data.groupID)}break}},this.on_rf_edge_change=n=>{},this.on_connect=n=>{n.source===null||n.target===null||n.sourceHandle===null||n.targetHandle===null||!this.workerManager.worker||this.workerManager.worker.api.edge.add_edge({src_nid:n.source,src_ioid:n.sourceHandle,trg_nid:n.target,trg_ioid:n.targetHandle,replace:!0})},this.useReactFlowStore=hBe({on_node_change:this.on_rf_node_change.bind(this),on_edge_change:this.on_rf_edge_change.bind(this),on_connect:this.on_connect.bind(this)})}}let bGe=class{constructor(t){this.reactflowRef=null,this.dev_settings={debug:$w()},this.options=t,this.logger=t.logger??new jM("fn",$w()?rF:oF);const n={rf:this};this._nodespaceManager=new uGe(n),this._libManager=new fGe(n),this._workerManager=new dGe(n),this._stateManager=new pGe(n),this._pluginManager=new gGe(n),this._reactFlowManager=new yGe(n)}getNodespaceManager(){return this._nodespaceManager}getLibManager(){return this._libManager}getWorkerManager(){return this._workerManager}getStateManager(){return this._stateManager}getPluginManager(){return this._pluginManager}getReactFlowManager(){return this._reactFlowManager}get nodespace(){return this._nodespaceManager.nodespace}get on_node_action(){return this._nodespaceManager.on_node_action.bind(this._nodespaceManager)}get on_edge_action(){return this._nodespaceManager.on_edge_action.bind(this._nodespaceManager)}get on_group_action(){return this._nodespaceManager.on_group_action.bind(this._nodespaceManager)}get clear_all(){return this._nodespaceManager.clear_all.bind(this._nodespaceManager)}get center_node(){return this._nodespaceManager.center_node.bind(this._nodespaceManager)}get center_all(){return this._nodespaceManager.center_all.bind(this._nodespaceManager)}get lib(){return this._libManager.lib}get set_worker(){return this._workerManager.set_worker.bind(this._workerManager)}get workermanager(){return this._workerManager.workermanager}set workermanager(t){this._workerManager.workermanager=t}get worker(){return this._workerManager.worker}get workers(){return this._workerManager.workers}get workerstate(){return this._workerManager.workerstate}get _unsubscribeFromWorker(){return this._workerManager._unsubscribeFromWorker?.bind(this._workerManager)}get set_progress(){return this._stateManager.set_progress.bind(this._stateManager)}get auto_progress(){return this._stateManager.auto_progress.bind(this._stateManager)}get progress_state(){return this._stateManager.progress_state}get local_settings(){return this._stateManager.local_settings}get local_state(){return this._stateManager.local_state}update_view_settings(t){this._stateManager.update_view_settings(t)}get plugins(){return this._pluginManager.plugins.bind(this._pluginManager)}get add_plugin(){return this._pluginManager.add_plugin.bind(this._pluginManager)}get add_packed_plugin(){return this._pluginManager.add_packed_plugin.bind(this._pluginManager)}get render_options(){return this._pluginManager.render_options.bind(this._pluginManager)}get update_render_options(){return this._pluginManager.update_render_options.bind(this._pluginManager)}get useReactFlowStore(){return this._reactFlowManager.useReactFlowStore.bind(this._reactFlowManager)}get rf_instance(){return this._reactFlowManager.rf_instance}set rf_instance(t){this._reactFlowManager.rf_instance=t}};const vGe=$M(OSe,e=>(e.id=Ej(),e)),SGe=e=>{if(!e.useWorkerManager&&e.worker===void 0)throw new Error("If you don't use a worker manager, you must provide a default worker.");if(e.useWorkerManager&&e.workermanager_url===void 0)throw new Error("Error: If you use a worker manager, you must provide a worker managerurl.")},vz={};window.fnrf_zst===void 0&&(window.fnrf_zst=vz);const Sz=e=>{const[t,n]=F.useState(void 0),[r,o]=F.useState(void 0),[a,s]=F.useState(!1);if(F.useEffect(()=>{const u=vGe(e);u.logger=u.logger||new jM("FuncNodes",u.debug?"debug":"info"),u.logger.debug("Initializing FuncNodes with props:",u),n(u),s(!1)},[e]),F.useEffect(()=>{if(!t)return;t.logger?.debug("Initializing/Getting Zustand store");const u=vz[t.id];if(u===void 0){const f=new bGe(t);vz[t.id]=f,o(f)}else o(u),u.options.debug=t.debug},[t?.id,t?.debug]),F.useEffect(()=>{if(!(!t||!r)&&!(t.useWorkerManager||!t.worker_url))if(t.logger?.debug("Worker effect running"),t.worker){t.worker.set_zustand(r);return}else{t.logger?.debug("Creating WebSocket worker");const u=new c8({url:t.worker_url,uuid:t.id,on_sync_complete:t.on_sync_complete});return u.set_zustand(r),n(f=>f&&{...f,worker:u,useWorkerManager:!1}),()=>{t.logger?.debug("Disconnecting worker"),u.disconnect(),n(f=>f&&{...f,worker:void 0})}}},[t?.worker_url,t?.id,t?.useWorkerManager,r,t?.on_sync_complete]),F.useEffect(()=>{if(!t?.fnw_url||!t.worker)return;t.logger?.debug("Loading fnw_url data");let u=!1;const f=t.worker.getSyncManager().on_sync_complete;return(async()=>{try{const m=await voe(t.fnw_url);!u&&t.worker&&(t.worker.getSyncManager().on_sync_complete=async g=>{await g.update_from_export(m),t.worker.getSyncManager().on_sync_complete=f,f&&f(g)})}catch(m){m instanceof Error?t.logger?.error("Failed to load fnw_url:",m):t.logger?.error("Failed to load fnw_url:",new Error(String(m)))}})(),()=>{u=!0,t.worker&&(t.worker.getSyncManager().on_sync_complete=f)}},[t?.fnw_url,t?.worker]),F.useEffect(()=>{if(!t||!r||!t.useWorkerManager)return;if(!t.workermanager_url)throw new Error("Error: If you use a worker manager, you must provide a worker manager url.");r.logger.info("Worker manager effect running");const u=!r.workermanager,f=r.workermanager&&r.workermanager.wsuri!==t.workermanager_url;if(u||f){r.workermanager&&(r.logger.info("Removing existing worker manager"),r.workermanager.remove(),r.workermanager=void 0),r.logger.info("Creating new worker manager");const p=new ASe(t.workermanager_url,r);return r.workermanager=p,n(m=>m&&{...m,workermanager:p}),()=>{r.logger.info("Worker manager cleanup running"),r.workermanager===p?(r.logger.info("Removing worker manager instance"),p.remove(),r.workermanager=void 0):r.logger.info("Worker manager instance mismatch, skipping cleanup")}}else{r.logger.info("Worker manager already initialized with correct URL");return}},[t?.useWorkerManager,t?.workermanager_url,t?.id,r]),F.useEffect(()=>{if(!t||!r||a)return;(t.useWorkerManager?r.workermanager!==void 0:t.worker!==void 0)&&t.on_ready&&typeof t.on_ready=="function"&&(t.logger?.debug("Firing on_ready callback"),t.on_ready({fnrf_zst:r}),s(!0))},[t,r,a,t?.useWorkerManager,r?.workermanager,t?.worker]),t===void 0||r===void 0)return A.jsx("div",{children:"Loading..."});try{SGe(t)}catch(u){return A.jsx(Soe,{error:u})}return A.jsx("div",{className:"FuncnodesApp",children:A.jsx(Jhe,{available_themes:f8,children:A.jsx(Mve,{duration:5e3,children:A.jsx(sGe,{fnrf_zst:r,header:t.header,library:t.library,flow:t.flow})})})})},xz=(e,t)=>{t===void 0&&(t={});const{element:n,eleid:r}=typeof e=="string"?{element:document.getElementById(e),eleid:e}:{element:e,eleid:e.id};soe.createRoot(n).render(A.jsx(F.StrictMode,{children:A.jsx(Sz,{...t,id:t.id||r})}))};window.FuncNodes=xz,window.FuncNodes.version="2.1.2",window.FuncNodes.utils={logger:{ConsoleLogger:jM,DivLogger:foe,BaseLogger:DM,DEBUG:rF,INFO:oF,WARN:loe,ERROR:uoe}},sn.ArrayBufferDataStructure=Oj,sn.CTypeStructure=Rj,sn.DataPreviewViewRendererToHandlePreviewRenderer=D3,sn.DataStructure=ou,sn.DataViewRendererToDataPreviewViewRenderer=ia,sn.DataViewRendererToInputRenderer=j3,sn.DataViewRendererToOverlayRenderer=Px,sn.FuncNodes=Sz,sn.FuncNodesRenderer=xz,sn.FuncNodesWorker=kj,sn.JSONStructure=Jf,sn.LATEST_VERSION=bz,sn.TextStructure=Nj,sn.useFuncNodesContext=Bn,sn.useIOGetFullValue=Tb,sn.useIOStore=Fr,sn.useIOValueStore=iY,sn.useNodeStore=za,sn.useSetIOValue=Yp,sn.useSetIOValueOptions=oY,sn.useWorkerApi=Hi,Object.defineProperty(sn,Symbol.toStringTag,{value:"Module"})}));
|