@linkdlab/funcnodes_react_flow 0.3.11 → 0.3.13

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.
Files changed (135) hide show
  1. package/dist/esm/index.esm.js +144 -8081
  2. package/dist/esm/index.esm.js.map +1 -0
  3. package/dist/esm/style.css +1726 -0
  4. package/dist/iife/index.js +106 -0
  5. package/dist/iife/index.js.map +1 -0
  6. package/dist/iife/style.css +1726 -0
  7. package/dist/index.d.ts +722 -0
  8. package/dist/style.css +1726 -0
  9. package/dist/umd/index.umd.js +144 -8944
  10. package/dist/umd/index.umd.js.map +1 -0
  11. package/dist/umd/style.css +1726 -0
  12. package/package.json +34 -16
  13. package/dist/css/style.css +0 -52
  14. package/dist/types/frontend/datarenderer/data_renderer_overlay.d.ts +0 -7
  15. package/dist/types/frontend/datarenderer/data_renderer_overlay.d.ts.map +0 -1
  16. package/dist/types/frontend/datarenderer/data_renderer_preview.d.ts +0 -7
  17. package/dist/types/frontend/datarenderer/data_renderer_preview.d.ts.map +0 -1
  18. package/dist/types/frontend/datarenderer/default_preview_renderer.d.ts +0 -25
  19. package/dist/types/frontend/datarenderer/default_preview_renderer.d.ts.map +0 -1
  20. package/dist/types/frontend/datarenderer/images.d.ts +0 -15
  21. package/dist/types/frontend/datarenderer/images.d.ts.map +0 -1
  22. package/dist/types/frontend/datarenderer/index.d.ts +0 -17
  23. package/dist/types/frontend/datarenderer/index.d.ts.map +0 -1
  24. package/dist/types/frontend/datarenderer/rendermappings.d.ts +0 -183
  25. package/dist/types/frontend/datarenderer/rendermappings.d.ts.map +0 -1
  26. package/dist/types/frontend/dialog.d.ts +0 -22
  27. package/dist/types/frontend/dialog.d.ts.map +0 -1
  28. package/dist/types/frontend/edge.d.ts +0 -6
  29. package/dist/types/frontend/edge.d.ts.map +0 -1
  30. package/dist/types/frontend/funcnodesreactflow/index.d.ts +0 -7
  31. package/dist/types/frontend/funcnodesreactflow/index.d.ts.map +0 -1
  32. package/dist/types/frontend/funcnodesreactflow/react_flow_layer.d.ts +0 -10
  33. package/dist/types/frontend/funcnodesreactflow/react_flow_layer.d.ts.map +0 -1
  34. package/dist/types/frontend/header/index.d.ts +0 -6
  35. package/dist/types/frontend/header/index.d.ts.map +0 -1
  36. package/dist/types/frontend/index.d.ts +0 -4
  37. package/dist/types/frontend/index.d.ts.map +0 -1
  38. package/dist/types/frontend/lib.d.ts +0 -11
  39. package/dist/types/frontend/lib.d.ts.map +0 -1
  40. package/dist/types/frontend/node/body_data_renderer.d.ts +0 -12
  41. package/dist/types/frontend/node/body_data_renderer.d.ts.map +0 -1
  42. package/dist/types/frontend/node/index.d.ts +0 -5
  43. package/dist/types/frontend/node/index.d.ts.map +0 -1
  44. package/dist/types/frontend/node/io/default_input_renderer.d.ts +0 -12
  45. package/dist/types/frontend/node/io/default_input_renderer.d.ts.map +0 -1
  46. package/dist/types/frontend/node/io/default_output_render.d.ts +0 -8
  47. package/dist/types/frontend/node/io/default_output_render.d.ts.map +0 -1
  48. package/dist/types/frontend/node/io/handle_renderer.d.ts +0 -12
  49. package/dist/types/frontend/node/io/handle_renderer.d.ts.map +0 -1
  50. package/dist/types/frontend/node/io/index.d.ts +0 -4
  51. package/dist/types/frontend/node/io/index.d.ts.map +0 -1
  52. package/dist/types/frontend/node/io/io.d.ts +0 -17
  53. package/dist/types/frontend/node/io/io.d.ts.map +0 -1
  54. package/dist/types/frontend/node/io/nodeinput.d.ts +0 -11
  55. package/dist/types/frontend/node/io/nodeinput.d.ts.map +0 -1
  56. package/dist/types/frontend/node/io/nodeoutput.d.ts +0 -7
  57. package/dist/types/frontend/node/io/nodeoutput.d.ts.map +0 -1
  58. package/dist/types/frontend/node/node.d.ts +0 -24
  59. package/dist/types/frontend/node/node.d.ts.map +0 -1
  60. package/dist/types/frontend/node/nodesettings.d.ts +0 -5
  61. package/dist/types/frontend/node/nodesettings.d.ts.map +0 -1
  62. package/dist/types/frontend/utils/colorpicker.d.ts +0 -22
  63. package/dist/types/frontend/utils/colorpicker.d.ts.map +0 -1
  64. package/dist/types/frontend/utils/jsondata.d.ts +0 -7
  65. package/dist/types/frontend/utils/jsondata.d.ts.map +0 -1
  66. package/dist/types/frontend/utils/progressbar.d.ts +0 -48
  67. package/dist/types/frontend/utils/progressbar.d.ts.map +0 -1
  68. package/dist/types/frontend/utils/select.d.ts +0 -15
  69. package/dist/types/frontend/utils/select.d.ts.map +0 -1
  70. package/dist/types/frontend/utils/table.d.ts +0 -12
  71. package/dist/types/frontend/utils/table.d.ts.map +0 -1
  72. package/dist/types/funcnodes/funcnodesworker.d.ts +0 -123
  73. package/dist/types/funcnodes/funcnodesworker.d.ts.map +0 -1
  74. package/dist/types/funcnodes/index.d.ts +0 -5
  75. package/dist/types/funcnodes/index.d.ts.map +0 -1
  76. package/dist/types/funcnodes/websocketworker.d.ts +0 -40
  77. package/dist/types/funcnodes/websocketworker.d.ts.map +0 -1
  78. package/dist/types/funcnodes/workermanager.d.ts +0 -33
  79. package/dist/types/funcnodes/workermanager.d.ts.map +0 -1
  80. package/dist/types/index.d.ts +0 -25
  81. package/dist/types/index.d.ts.map +0 -1
  82. package/dist/types/plugin/index.d.ts +0 -19
  83. package/dist/types/plugin/index.d.ts.map +0 -1
  84. package/dist/types/plugin/rendenderer.d.ts +0 -24
  85. package/dist/types/plugin/rendenderer.d.ts.map +0 -1
  86. package/dist/types/plugin/renderer.d.ts +0 -24
  87. package/dist/types/plugin/renderer.d.ts.map +0 -1
  88. package/dist/types/states/edge.d.ts +0 -8
  89. package/dist/types/states/edge.d.ts.map +0 -1
  90. package/dist/types/states/edge.t.d.ts +0 -17
  91. package/dist/types/states/edge.t.d.ts.map +0 -1
  92. package/dist/types/states/fnrfzst.d.ts +0 -11
  93. package/dist/types/states/fnrfzst.d.ts.map +0 -1
  94. package/dist/types/states/fnrfzst.t.d.ts +0 -159
  95. package/dist/types/states/fnrfzst.t.d.ts.map +0 -1
  96. package/dist/types/states/index.d.ts +0 -8
  97. package/dist/types/states/index.d.ts.map +0 -1
  98. package/dist/types/states/lib.d.ts +0 -4
  99. package/dist/types/states/lib.d.ts.map +0 -1
  100. package/dist/types/states/lib.t.d.ts +0 -46
  101. package/dist/types/states/lib.t.d.ts.map +0 -1
  102. package/dist/types/states/node.d.ts +0 -6
  103. package/dist/types/states/node.d.ts.map +0 -1
  104. package/dist/types/states/node.t.d.ts +0 -77
  105. package/dist/types/states/node.t.d.ts.map +0 -1
  106. package/dist/types/states/nodeio.t.d.ts +0 -75
  107. package/dist/types/states/nodeio.t.d.ts.map +0 -1
  108. package/dist/types/states/nodespace.d.ts +0 -4
  109. package/dist/types/states/nodespace.d.ts.map +0 -1
  110. package/dist/types/states/nodespace.t.d.ts +0 -17
  111. package/dist/types/states/nodespace.t.d.ts.map +0 -1
  112. package/dist/types/states/reactflow.d.ts +0 -9
  113. package/dist/types/states/reactflow.d.ts.map +0 -1
  114. package/dist/types/states/reactflow.t.d.ts +0 -12
  115. package/dist/types/states/reactflow.t.d.ts.map +0 -1
  116. package/dist/types/types/rendering.t.d.ts +0 -11
  117. package/dist/types/types/rendering.t.d.ts.map +0 -1
  118. package/dist/types/utils/autolayout/force.d.ts +0 -3
  119. package/dist/types/utils/autolayout/force.d.ts.map +0 -1
  120. package/dist/types/utils/autolayout/index.d.ts +0 -3
  121. package/dist/types/utils/autolayout/index.d.ts.map +0 -1
  122. package/dist/types/utils/autolayout/txt.d.ts +0 -16
  123. package/dist/types/utils/autolayout/txt.d.ts.map +0 -1
  124. package/dist/types/utils/data.d.ts +0 -13
  125. package/dist/types/utils/data.d.ts.map +0 -1
  126. package/dist/types/utils/debugger.d.ts +0 -5
  127. package/dist/types/utils/debugger.d.ts.map +0 -1
  128. package/dist/types/utils/helperfunctions.d.ts +0 -17
  129. package/dist/types/utils/helperfunctions.d.ts.map +0 -1
  130. package/dist/types/utils/index.d.ts +0 -4
  131. package/dist/types/utils/index.d.ts.map +0 -1
  132. package/dist/types/utils/logger.d.ts +0 -25
  133. package/dist/types/utils/logger.d.ts.map +0 -1
  134. package/dist/types/utils/objects.d.ts +0 -30
  135. package/dist/types/utils/objects.d.ts.map +0 -1
@@ -0,0 +1,722 @@
1
+ import * as React from 'react';
2
+ import React__default, { JSX, ReactElement } from 'react';
3
+ import { UseBoundStore, StoreApi } from 'zustand';
4
+ import { Node, Edge, OnNodesChange, OnEdgesChange, OnConnect, useReactFlow } from 'reactflow';
5
+
6
+ type DeepPartial<T> = T extends object ? {
7
+ [P in keyof T]?: DeepPartial<T[P]>;
8
+ } : T;
9
+ type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
10
+ type LimitedDeepPartial<T, D extends number = 10> = D extends 0 ? T : T extends object ? {
11
+ [K in keyof T]?: LimitedDeepPartial<T[K], Prev[D]>;
12
+ } : T;
13
+ /**
14
+ * Deeply updates the target object with missing keys from the source object.
15
+ * @param target The target object to be updated.
16
+ * @param source The source object containing keys to add to the target.
17
+ * @returns An object containing the updated target object (new_obj) and a boolean indicating if there was a change (change).
18
+ */
19
+ declare const deep_update: <T extends {}>(target: LimitedDeepPartial<T>, source: T) => {
20
+ new_obj: T;
21
+ change: boolean;
22
+ };
23
+
24
+ type RenderType = "string" | "number" | "boolean" | "image" | SerializedType;
25
+ interface BaseRenderOptions {
26
+ type: RenderType;
27
+ }
28
+ interface DataRenderOptions extends BaseRenderOptions {
29
+ src?: string;
30
+ preview_type?: string;
31
+ }
32
+
33
+ interface AllOf {
34
+ allOf: SerializedType[];
35
+ }
36
+ interface AnyOf {
37
+ anyOf: SerializedType[];
38
+ }
39
+ interface ArrayOf {
40
+ type: "array";
41
+ items: SerializedType;
42
+ uniqueItems: boolean;
43
+ }
44
+ interface DictOf {
45
+ type: "object";
46
+ keys: SerializedType;
47
+ values: SerializedType;
48
+ }
49
+ interface EnumOf {
50
+ type: "enum";
51
+ values: (number | string | boolean | null)[];
52
+ keys: string[];
53
+ nullable: boolean;
54
+ }
55
+ interface TypeOf {
56
+ type: "type";
57
+ value: SerializedType;
58
+ }
59
+ type SerializedType = string | AllOf | AnyOf | ArrayOf | DictOf | EnumOf | TypeOf;
60
+ interface IORenderOptions extends BaseRenderOptions {
61
+ step?: number;
62
+ set_default: boolean;
63
+ }
64
+ interface IOValueOptions {
65
+ min?: number;
66
+ max?: number;
67
+ step?: number;
68
+ options?: (string | number)[] | EnumOf;
69
+ colorspace?: string;
70
+ }
71
+ interface IOType {
72
+ connected: boolean;
73
+ does_trigger: boolean;
74
+ full_id: string;
75
+ id: string;
76
+ is_input: boolean;
77
+ name: string;
78
+ node: string;
79
+ type: SerializedType;
80
+ value: any;
81
+ fullvalue?: any;
82
+ render_options: IORenderOptions;
83
+ value_options?: IOValueOptions;
84
+ valuepreview_type?: string;
85
+ try_get_full_value: undefined | (() => void);
86
+ hidden: boolean;
87
+ set_hidden: undefined | ((v: boolean) => void);
88
+ }
89
+ interface UpdateableIOOptions {
90
+ name?: string;
91
+ hidden?: boolean;
92
+ }
93
+ type OutputRendererProps = {
94
+ io: IOType;
95
+ };
96
+ type OutputRendererType = ({ io }: OutputRendererProps) => JSX.Element;
97
+ interface InputRendererProps {
98
+ io: IOType;
99
+ inputconverter: [(v: any) => any, (v: any) => any];
100
+ }
101
+ type InputRendererType = ({ io, inputconverter, }: InputRendererProps) => JSX.Element;
102
+
103
+ /**
104
+ * Interface representing the state of a tqdm progress bar.
105
+ *
106
+ * Notes on each field:
107
+ * - `n`: Current iteration count.
108
+ * - `total`: Total number of iterations if known, `null` otherwise.
109
+ * - `elapsed`: Time elapsed in seconds since the start of iteration.
110
+ * - `ncols`: Number of columns for the progress bar. If `null`, not dynamically determined.
111
+ * - `nrows`: Number of rows. Usually `null` as `tqdm` typically focuses on columns.
112
+ * - `prefix`: Description string provided to `tqdm` via `desc`.
113
+ * - `ascii`: Whether to use ASCII characters for the bar or a custom set of ASCII characters.
114
+ * Can be `true`, `false`, or a string specifying the characters.
115
+ * - `unit`: Iteration unit (e.g., 'it', 'steps', 'items').
116
+ * - `unit_scale`: If `true`, `tqdm` scales the iteration values.
117
+ * If a number, `tqdm` uses it as a scaling factor.
118
+ * - `rate`: Current rate of iteration (iterations/second). `null` if rate cannot be computed.
119
+ * - `bar_format`: Custom format string for the bar. If `null`, the default format is used.
120
+ * - `postfix`: Additional data appended to the bar. Could be a string or an object passed via `set_postfix()`.
121
+ * - `unit_divisor`: Divisor used when scaling units (e.g., 1000 or 1024).
122
+ * - `initial`: Initial counter value if specified, else `null`.
123
+ * - `colour`: Colour for the progress bar if supported, else `null`.
124
+ */
125
+ interface TqdmState {
126
+ n: number;
127
+ total?: number;
128
+ elapsed: number;
129
+ ncols?: number;
130
+ nrows?: number;
131
+ prefix?: string;
132
+ ascii: boolean | string;
133
+ unit: string;
134
+ unit_scale: boolean | number;
135
+ rate?: number;
136
+ bar_format?: string;
137
+ postfix?: string | Record<string, unknown>;
138
+ unit_divisor: number;
139
+ initial?: number;
140
+ colour?: string;
141
+ }
142
+
143
+ /**
144
+ * Interface for the NodeActionAdd.
145
+ * This interface is used when a new node is being added.
146
+ * It has a type property set to "add" and a node property of NodeType.
147
+ */
148
+ interface BaseNodeAction {
149
+ type: string;
150
+ from_remote: boolean;
151
+ id: string;
152
+ immediate?: boolean;
153
+ }
154
+ interface NodeActionAdd extends BaseNodeAction {
155
+ type: "add";
156
+ node: NodeType;
157
+ }
158
+ /**
159
+ * Interface for the NodeActionUpdate.
160
+ * This interface is used when an existing node is being updated.
161
+ * It has a type property set to "update", an id property for the node to be updated,
162
+ * and a node property of PartialNodeType which contains the properties to be updated.
163
+ */
164
+ interface NodeActionUpdate extends BaseNodeAction {
165
+ type: "update";
166
+ node: PartialNodeType;
167
+ }
168
+ /**
169
+ * Interface for the NodeActionDelete.
170
+ * This interface is used when a node is being deleted.
171
+ * It has a type property set to "delete" and an id property for the node to be deleted.
172
+ */
173
+ interface NodeActionDelete extends BaseNodeAction {
174
+ type: "delete";
175
+ }
176
+ interface NodeActionError extends BaseNodeAction {
177
+ type: "error";
178
+ errortype: string;
179
+ error: string;
180
+ tb?: string;
181
+ }
182
+ interface NodeActionTrigger extends BaseNodeAction {
183
+ type: "trigger";
184
+ }
185
+ /**
186
+ * Type alias for NodeAction.
187
+ * A NodeAction can be either a NodeActionAdd, NodeActionUpdate, or NodeActionDelete.
188
+ */
189
+ type NodeAction = NodeActionAdd | NodeActionUpdate | NodeActionDelete | NodeActionError | NodeActionTrigger;
190
+ type NodeStore = UseBoundStore<StoreApi<NodeType>>;
191
+ interface NodeRenderOptions {
192
+ data?: DataRenderOptions;
193
+ }
194
+ interface NodeType {
195
+ id: string;
196
+ node_name: string;
197
+ io: {
198
+ [key: string]: IOType;
199
+ };
200
+ frontend: {
201
+ pos: [number, number];
202
+ size: [number, number];
203
+ collapsed: boolean;
204
+ };
205
+ name: string;
206
+ in_trigger: boolean;
207
+ error?: string;
208
+ render_options?: NodeRenderOptions;
209
+ io_order: string[];
210
+ progress: TqdmState;
211
+ description?: string;
212
+ }
213
+ type PartialNodeType = DeepPartial<NodeType>;
214
+
215
+ interface WorkerProps {
216
+ zustand?: FuncNodesReactFlowZustandInterface;
217
+ uuid: string;
218
+ on_error?: (error: string | Error) => void;
219
+ on_sync_complete?: (worker: FuncNodesWorker) => Promise<void>;
220
+ }
221
+ interface FuncNodesWorkerState {
222
+ is_open: boolean;
223
+ }
224
+ declare class FuncNodesWorker {
225
+ messagePromises: Map<string, any>;
226
+ _zustand?: FuncNodesReactFlowZustandInterface;
227
+ _local_nodeupdates: Map<string, PartialNodeType>;
228
+ _nodeupdatetimer: ReturnType<typeof setTimeout>;
229
+ uuid: string;
230
+ state: UseBoundStore<StoreApi<FuncNodesWorkerState>>;
231
+ on_sync_complete: (worker: FuncNodesWorker) => Promise<void>;
232
+ on_error: (error: any) => void;
233
+ constructor(data: WorkerProps);
234
+ set_zustand(zustand: FuncNodesReactFlowZustandInterface): void;
235
+ get is_open(): boolean;
236
+ set is_open(v: boolean);
237
+ stepwise_fullsync(): Promise<void>;
238
+ sync_lib(): Promise<void>;
239
+ sync_external_worker(): Promise<void>;
240
+ sync_funcnodes_plugins(): Promise<void>;
241
+ sync_view_state(): Promise<void>;
242
+ sync_nodespace(): Promise<void>;
243
+ fullsync(): Promise<void>;
244
+ _receive_edge_added(src_nid: string, src_ioid: string, trg_nid: string, trg_ioid: string): Promise<void>;
245
+ trigger_node(node_id: string): Promise<void>;
246
+ add_node(node_id: string): Promise<void>;
247
+ remove_node(node_id: string): Promise<void>;
248
+ _receive_node_added(data: NodeType): Promise<void>;
249
+ add_edge({ src_nid, src_ioid, trg_nid, trg_ioid, replace, }: {
250
+ src_nid: string;
251
+ src_ioid: string;
252
+ trg_nid: string;
253
+ trg_ioid: string;
254
+ replace?: boolean;
255
+ }): Promise<any>;
256
+ remove_edge({ src_nid, src_ioid, trg_nid, trg_ioid, }: {
257
+ src_nid: string;
258
+ src_ioid: string;
259
+ trg_nid: string;
260
+ trg_ioid: string;
261
+ }): Promise<any>;
262
+ add_external_worker({ module, cls_module, cls_name, }: {
263
+ module: string;
264
+ cls_module: string;
265
+ cls_name: string;
266
+ }): Promise<any>;
267
+ sync_local_node_updates(): void;
268
+ locally_update_node(action: NodeActionUpdate): void;
269
+ get_remote_node_state(nid: string): Promise<void>;
270
+ set_io_value({ nid, ioid, value, set_default, }: {
271
+ nid: string;
272
+ ioid: string;
273
+ value: any;
274
+ set_default: boolean;
275
+ }): Promise<any>;
276
+ clear(): Promise<any>;
277
+ save(): Promise<any>;
278
+ load(data: any): Promise<void>;
279
+ get_io_value({ nid, ioid }: {
280
+ nid: string;
281
+ ioid: string;
282
+ }): Promise<any>;
283
+ get_ios_values({ nid }: {
284
+ nid: string;
285
+ }): Promise<{
286
+ [ioid: string]: any;
287
+ }>;
288
+ _send_cmd({ cmd, kwargs, wait_for_response, response_timeout, retries, }: {
289
+ cmd: string;
290
+ kwargs?: any;
291
+ wait_for_response?: boolean;
292
+ response_timeout?: number;
293
+ retries?: number;
294
+ }): Promise<any>;
295
+ send(_data: any): Promise<void>;
296
+ upload_file({ files: _files, onProgressCallback: _onProgressCallback, root: _root, }: {
297
+ files: File[] | FileList;
298
+ onProgressCallback?: (loaded: number, total?: number) => void;
299
+ root?: string;
300
+ }): Promise<string[]>;
301
+ handle_large_message_hint({}: LargeMessageHint): Promise<void>;
302
+ receive_workerevent({ event, data }: WorkerEvent): Promise<void>;
303
+ receive_nodespace_event({ event, data }: NodeSpaceEvent): Promise<void>;
304
+ add_lib(lib: string, release: string): Promise<any>;
305
+ remove_lib(lib: string): Promise<any>;
306
+ receive(data: JSONMessage): Promise<any>;
307
+ disconnect(): void;
308
+ onclose(): void;
309
+ reconnect(): Promise<void>;
310
+ stop(): Promise<void>;
311
+ get_io_full_value({ nid, ioid }: {
312
+ nid: string;
313
+ ioid: string;
314
+ }): Promise<any>;
315
+ update_io_options({ nid, ioid, options, }: {
316
+ nid: string;
317
+ ioid: string;
318
+ options: UpdateableIOOptions;
319
+ }): Promise<any>;
320
+ get_node_status(nid: string): Promise<any>;
321
+ get_available_modules(): Promise<any>;
322
+ update_external_worker(worker_id: string, class_id: string, data: {
323
+ name?: string;
324
+ }): Promise<any>;
325
+ remove_external_worker(worker_id: string, class_id: string): Promise<any>;
326
+ export({ withFiles }: {
327
+ withFiles: boolean;
328
+ }): Promise<any>;
329
+ update_from_export(data: string): Promise<any>;
330
+ }
331
+
332
+ interface WebSocketWorkerProps extends WorkerProps {
333
+ url: string;
334
+ }
335
+ declare class WebSocketWorker extends FuncNodesWorker {
336
+ private _url;
337
+ private _websocket;
338
+ private reconnectAttempts;
339
+ private maxReconnectAttempts;
340
+ private initialTimeout;
341
+ private maxTimeout;
342
+ private _reconnect;
343
+ constructor(data: WebSocketWorkerProps);
344
+ private connect;
345
+ private calculateReconnectTimeout;
346
+ private auto_reconnect;
347
+ onmessage(data: string): Promise<void>;
348
+ get http_protocol(): string;
349
+ get secure_url(): boolean;
350
+ get url_wo_protocol(): string;
351
+ get http_url(): string;
352
+ upload_file({ files, onProgressCallback, root, }: {
353
+ files: File[] | FileList;
354
+ onProgressCallback?: (loaded: number, total?: number) => void;
355
+ root?: string;
356
+ }): Promise<string[]>;
357
+ handle_large_message_hint({ msg_id }: LargeMessageHint): Promise<void>;
358
+ onopen(): void;
359
+ onclose(): void;
360
+ on_ws_error(): void;
361
+ send_large_message(jsondata: string): Promise<void>;
362
+ send(data: any): Promise<void>;
363
+ stop(): Promise<void>;
364
+ close(): void;
365
+ disconnect(): void;
366
+ reconnect(): Promise<void>;
367
+ }
368
+
369
+ declare class WorkerManager {
370
+ private wsuri;
371
+ private workers;
372
+ private ws;
373
+ private reconnectAttempts;
374
+ private maxReconnectAttempts;
375
+ private initialTimeout;
376
+ private maxTimeout;
377
+ private zustand;
378
+ private connectionTimeout?;
379
+ on_setWorker: (worker: FuncNodesWorker | undefined) => void;
380
+ constructor(wsuri: string, zustand: FuncNodesReactFlowZustandInterface);
381
+ get open(): boolean;
382
+ private connect;
383
+ on_ws_error(): void;
384
+ onopen(): void;
385
+ onmessage(event: string): void;
386
+ setWorker(worker: FuncNodesWorker | undefined): void;
387
+ restart_worker(workerid: string): Promise<void>;
388
+ private calculateReconnectTimeout;
389
+ private reconnect;
390
+ onclose(): void;
391
+ set_active(workerid: string): void;
392
+ new_worker({ name, reference, copyLib, copyNS, }: {
393
+ name?: string;
394
+ reference?: string;
395
+ copyLib?: boolean;
396
+ copyNS?: boolean;
397
+ }): void;
398
+ }
399
+
400
+ type LibNode = {
401
+ node_id: string;
402
+ description?: string;
403
+ node_name?: string;
404
+ };
405
+ type Shelf = {
406
+ name: string;
407
+ description?: string;
408
+ nodes: LibNode[];
409
+ subshelves: Shelf[];
410
+ };
411
+ type LibType = {
412
+ shelves: Shelf[];
413
+ };
414
+ interface ExternalWorkerInstance {
415
+ uuid: string;
416
+ nodeclassid: string;
417
+ running: boolean;
418
+ name: string;
419
+ }
420
+ interface ExternalWorkerClassDep {
421
+ module: string;
422
+ class_name: string;
423
+ name: string;
424
+ instances: ExternalWorkerInstance[];
425
+ }
426
+ interface ExternalWorkerDependencies {
427
+ module: string;
428
+ worker_classes: ExternalWorkerClassDep[];
429
+ }
430
+ interface LibState {
431
+ lib: LibType;
432
+ external_worker?: ExternalWorkerDependencies[];
433
+ set: (state: {
434
+ lib?: LibType;
435
+ external_worker?: ExternalWorkerDependencies[];
436
+ }) => void;
437
+ get_lib: () => LibType;
438
+ get_external_worker: () => ExternalWorkerDependencies[] | undefined;
439
+ }
440
+ interface LibZustandInterface {
441
+ libstate: UseBoundStore<StoreApi<LibState>>;
442
+ }
443
+
444
+ /**
445
+ * Interface for the NodeSpaceZustand state management.
446
+ * This interface is used to define the shape of the state and the actions that can be performed on it.
447
+ */
448
+ interface NodeSpaceZustandInterface {
449
+ nodesstates: Map<string, NodeStore>;
450
+ get_node: (nid: string, raise?: boolean) => NodeStore | undefined;
451
+ }
452
+
453
+ type RFState = {
454
+ nodes: Node[];
455
+ edges: Edge[];
456
+ onNodesChange: OnNodesChange;
457
+ onEdgesChange: OnEdgesChange;
458
+ onConnect: OnConnect;
459
+ };
460
+ type RFStore = UseBoundStore<StoreApi<RFState>>;
461
+
462
+ interface BaseEdgeAction {
463
+ type: string;
464
+ src_nid: string;
465
+ src_ioid: string;
466
+ trg_nid: string;
467
+ trg_ioid: string;
468
+ from_remote: boolean;
469
+ }
470
+ interface EdgeActionAdd extends BaseEdgeAction {
471
+ type: "add";
472
+ }
473
+ interface EdgeActionDelete extends BaseEdgeAction {
474
+ type: "delete";
475
+ }
476
+ type EdgeAction = EdgeActionAdd | EdgeActionDelete;
477
+
478
+ type HandlePreviewRendererType = ({ io }: {
479
+ io: IOType;
480
+ }) => JSX.Element;
481
+ type DataOverlayRendererType = ({ io }: {
482
+ io: IOType;
483
+ }) => JSX.Element;
484
+ type DataPreviewViewRendererType = ({ io }: {
485
+ io: IOType;
486
+ }) => JSX.Element;
487
+ type DataViewRendererType = ({ io }: {
488
+ io: IOType;
489
+ }) => JSX.Element;
490
+ /**
491
+ * RenderMappingProvider is a React component that provides a context for managing and extending the mappings of input renderers, handle preview renderers, data overlay renderers, data preview view renderers, and data view renderers. These mappings are used throughout the application to render various types of inputs, previews, and data views dynamically.
492
+
493
+ * The provider initializes with a set of default mappings and allows these mappings to be extended or overwritten via actions dispatched within the component's reducer. Additionally, it can automatically integrate renderer plugins, extending the functionality based on the provided plugins.
494
+
495
+ * @param {object} props - The props object for the RenderMappingProvider component.
496
+ * @param {ReactElement} props.children - The child components that will be wrapped by the provider.
497
+ * @param {object} props.plugins - An object containing various FuncNodesReactPlugin instances, which may include renderer plugins to be integrated into the render mappings.
498
+
499
+ * @returns {JSX.Element} A JSX element that provides the render mapping context to its children.
500
+
501
+ * Context Value:
502
+ * The context value provided by this component includes the following properties and functions:
503
+ * - Inputrenderer: A mapping of input types to their corresponding renderer components.
504
+ * - Outputrenderer: A mapping of output types to their corresponding renderer components.
505
+ * - HandlePreviewRenderer: A mapping of handle preview types to their corresponding renderer components.
506
+ * - DataOverlayRenderer: A mapping of data overlay types to their corresponding renderer components.
507
+ * - DataPreviewViewRenderer: A mapping of data preview view types to their corresponding renderer components.
508
+ * - DataViewRenderer: A mapping of data view types to their corresponding renderer components.
509
+ * - extendInputRenderMapping: A function to extend the input renderer mapping.
510
+ * - extendOutputRenderMapping: A function to extend the output renderer mapping.
511
+ * - extendHandlePreviewRenderMapping: A function to extend the handle preview renderer mapping.
512
+ * - extendDataOverlayRenderMapping: A function to extend the data overlay renderer mapping.
513
+ * - extendDataPreviewRenderMapping: A function to extend the data preview view renderer mapping.
514
+ * - extendDataViewRenderMapping: A function to extend the data view renderer mapping.
515
+ * - extendFromPlugin: A function to extend all relevant mappings from a given renderer plugin.
516
+
517
+ * Example usage:
518
+ * ```jsx
519
+ * <RenderMappingProvider plugins={myPlugins}>
520
+ * <MyComponent />
521
+ * </RenderMappingProvider>
522
+ * ```
523
+ */
524
+ declare const RenderMappingProvider: ({ children, plugins, fnrf_zst, }: {
525
+ children: ReactElement;
526
+ plugins: {
527
+ [key: string]: FuncNodesReactPlugin;
528
+ };
529
+ fnrf_zst: FuncNodesReactFlowZustandInterface;
530
+ }) => JSX.Element;
531
+
532
+ interface RendererPlugin {
533
+ input_renderers?: {
534
+ [key: string]: InputRendererType;
535
+ };
536
+ output_renderers?: {
537
+ [key: string]: OutputRendererType;
538
+ };
539
+ handle_preview_renderers?: {
540
+ [key: string]: HandlePreviewRendererType;
541
+ };
542
+ data_overlay_renderers?: {
543
+ [key: string]: DataOverlayRendererType;
544
+ };
545
+ data_preview_renderers?: {
546
+ [key: string]: DataPreviewViewRendererType;
547
+ };
548
+ data_view_renderers?: {
549
+ [key: string]: DataViewRendererType;
550
+ };
551
+ }
552
+
553
+ type RenderPluginFactoryProps = {
554
+ React: typeof React;
555
+ fnrf_zst: FuncNodesReactFlowZustandInterface;
556
+ };
557
+ interface FuncNodesReactPlugin {
558
+ RendererPlugin?: RendererPlugin;
559
+ renderpluginfactory?: (props: RenderPluginFactoryProps) => RendererPlugin;
560
+ }
561
+
562
+ interface Logger {
563
+ level: number;
564
+ set_level: (level: number) => void;
565
+ debug: (message: string, ...args: any[]) => void;
566
+ info: (message: string, ...args: any[]) => void;
567
+ warn: (message: string, ...args: any[]) => void;
568
+ error: (message: string, ...args: any[]) => void;
569
+ }
570
+
571
+ interface RenderOptions {
572
+ typemap?: {
573
+ [key: string]: string;
574
+ };
575
+ inputconverter?: {
576
+ [key: string]: string;
577
+ };
578
+ }
579
+ interface ProgressState {
580
+ message: string;
581
+ status: string;
582
+ progress: number;
583
+ blocking: boolean;
584
+ }
585
+ interface ProgressStateMessage extends ProgressState {
586
+ type: "progress";
587
+ }
588
+ interface ResultMessage {
589
+ type: "result";
590
+ id?: string;
591
+ result: any;
592
+ }
593
+ interface ErrorMessage {
594
+ type: "error";
595
+ error: string;
596
+ tb: string[];
597
+ id?: string;
598
+ }
599
+ interface NodeSpaceEvent {
600
+ type: "nsevent";
601
+ event: string;
602
+ data: {
603
+ [key: string]: any;
604
+ };
605
+ }
606
+ interface WorkerEvent {
607
+ type: "workerevent";
608
+ event: string;
609
+ data: {
610
+ [key: string]: any;
611
+ };
612
+ }
613
+ interface LargeMessageHint {
614
+ type: "large_message";
615
+ msg_id: string;
616
+ }
617
+ type JSONMessage = ProgressStateMessage | ResultMessage | ErrorMessage | NodeSpaceEvent | WorkerEvent | LargeMessageHint;
618
+ interface WorkerRepresentation {
619
+ uuid: string;
620
+ host: string;
621
+ port: number;
622
+ ssl: boolean;
623
+ active: boolean;
624
+ open: boolean;
625
+ name: string | null;
626
+ }
627
+ interface WorkersState {
628
+ [key: string]: WorkerRepresentation;
629
+ }
630
+ interface FuncnodesReactHeaderProps {
631
+ show: boolean;
632
+ showmenu: boolean;
633
+ }
634
+ interface ReactFlowLibraryProps {
635
+ show: boolean;
636
+ }
637
+ interface ReactFlowLayerProps {
638
+ minimap: boolean;
639
+ static: boolean;
640
+ minZoom: number;
641
+ maxZoom: number;
642
+ }
643
+ interface FuncnodesReactFlowProps {
644
+ id: string;
645
+ debug: boolean;
646
+ on_sync_complete?: (worker: FuncNodesWorker) => Promise<void>;
647
+ useWorkerManager: boolean;
648
+ show_library: boolean;
649
+ worker?: FuncNodesWorker;
650
+ header: FuncnodesReactHeaderProps;
651
+ flow: ReactFlowLayerProps;
652
+ library: ReactFlowLibraryProps;
653
+ worker_url?: string;
654
+ fnw_url?: string;
655
+ workermanager_url?: string;
656
+ }
657
+ interface DevSettings {
658
+ debug: boolean;
659
+ }
660
+ interface FuncnodesReactFlowViewSettings {
661
+ expand_node_props: boolean;
662
+ }
663
+ interface FuncnodesReactFlowLocalSettings {
664
+ view_settings: FuncnodesReactFlowViewSettings;
665
+ update_view_settings: (settings: FuncnodesReactFlowViewSettings) => void;
666
+ }
667
+ interface FuncnodesReactFlowLocalState {
668
+ selected_nodes: string[];
669
+ selected_edges: string[];
670
+ }
671
+ interface FuncNodesReactFlowZustandInterface {
672
+ options: FuncnodesReactFlowProps;
673
+ local_settings: UseBoundStore<StoreApi<FuncnodesReactFlowLocalSettings>>;
674
+ local_state: UseBoundStore<StoreApi<FuncnodesReactFlowLocalState>>;
675
+ lib: LibZustandInterface;
676
+ workermanager: WorkerManager | undefined;
677
+ workers: UseBoundStore<StoreApi<WorkersState>>;
678
+ workerstate: UseBoundStore<StoreApi<FuncNodesWorkerState>>;
679
+ worker: FuncNodesWorker | undefined;
680
+ set_worker: (worker: FuncNodesWorker | undefined) => void;
681
+ _unsubscribeFromWorker: (() => void) | undefined;
682
+ nodespace: NodeSpaceZustandInterface;
683
+ useReactFlowStore: RFStore;
684
+ render_options: UseBoundStore<StoreApi<RenderOptions>>;
685
+ progress_state: UseBoundStore<StoreApi<ProgressState>>;
686
+ update_render_options: (options: RenderOptions) => void;
687
+ rf_instance?: ReturnType<typeof useReactFlow>;
688
+ on_node_action: (action: NodeAction) => void;
689
+ on_edge_action: (edge: EdgeAction) => void;
690
+ set_progress: (progress: ProgressState) => void;
691
+ auto_progress: () => void;
692
+ plugins: UseBoundStore<StoreApi<{
693
+ [key: string]: FuncNodesReactPlugin;
694
+ }>>;
695
+ add_plugin: (name: string, plugin: FuncNodesReactPlugin) => void;
696
+ reactflowRef: HTMLDivElement | null;
697
+ clear_all: () => void;
698
+ dev_settings: DevSettings;
699
+ logger: Logger;
700
+ }
701
+
702
+ declare const FuncNodesContext: React__default.Context<FuncNodesReactFlowZustandInterface>;
703
+ declare const FuncnodesReactFlow: (fnprops: Partial<FuncnodesReactFlowProps>) => React__default.JSX.Element;
704
+
705
+ declare const helperfunctions: {
706
+ set_io_value: ({ nid, ioid, value, set_default, }: {
707
+ nid: string;
708
+ ioid: string;
709
+ value: any;
710
+ set_default?: boolean;
711
+ }) => void;
712
+ };
713
+
714
+ declare const FuncNodesReactFlowZustand: (props: FuncnodesReactFlowProps) => FuncNodesReactFlowZustandInterface;
715
+
716
+ declare const ReactFlowLayer: (props: ReactFlowLayerProps) => React__default.JSX.Element;
717
+
718
+ declare const assert_full_node: (node: PartialNodeType) => NodeType;
719
+
720
+ declare const FuncNodes: (props: Partial<FuncnodesReactFlowProps>) => React__default.JSX.Element;
721
+
722
+ export { type DataOverlayRendererType, type DataPreviewViewRendererType, type DataViewRendererType, FuncNodesContext, FuncNodesReactFlowZustand, type FuncNodesReactFlowZustandInterface, type FuncNodesReactPlugin, FuncNodesWorker, FuncnodesReactFlow, type FuncnodesReactFlowProps, type HandlePreviewRendererType, type IOType, type InputRendererProps, type NodeType, type OutputRendererProps, type PartialNodeType, type ProgressState, ReactFlowLayer, RenderMappingProvider, type RenderPluginFactoryProps, type RendererPlugin, WebSocketWorker, type WorkerProps, assert_full_node, deep_update, FuncNodes as default, helperfunctions };