@xyo-network/react-node 7.0.0 → 7.0.1
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/browser/components/Node.stories.d.ts +2 -2
- package/dist/browser/components/Node.stories.d.ts.map +1 -1
- package/dist/browser/components/NodeDrawer.stories.d.ts +1 -1
- package/dist/browser/components/NodeDrawer.stories.d.ts.map +1 -1
- package/dist/browser/hooks/getModuleFilterOptions.d.ts +1 -1
- package/dist/browser/hooks/getWeakModuleFilterOptions.d.ts +1 -1
- package/dist/browser/index.mjs +151 -279
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +37 -34
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Meta } from '@storybook/react-vite';
|
|
2
2
|
declare const _default: Meta;
|
|
3
3
|
export default _default;
|
|
4
|
-
declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, {}>;
|
|
5
|
-
declare const WithModules: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, {}>;
|
|
4
|
+
declare const Default: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, {}>;
|
|
5
|
+
declare const WithModules: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, {}>;
|
|
6
6
|
export { Default, WithModules };
|
|
7
7
|
//# sourceMappingURL=Node.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Node.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACC,IAAI,EAChB,MAAM,uBAAuB,CAAA;wBA2BsB,IAAI;AAAxD,wBAAwD;AA8BxD,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Node.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Node.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACC,IAAI,EAChB,MAAM,uBAAuB,CAAA;wBA2BsB,IAAI;AAAxD,wBAAwD;AA8BxD,QAAA,MAAM,OAAO,wIAAoB,CAAA;AAGjC,QAAA,MAAM,WAAW,wIAAoB,CAAA;AAIrC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Meta } from '@storybook/react-vite';
|
|
2
2
|
import { NodeDrawer } from './NodeDrawer.tsx';
|
|
3
3
|
declare const StorybookEntry: Meta<typeof NodeDrawer>;
|
|
4
|
-
declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("./NodeDrawer.tsx").NodeDrawerProps>;
|
|
4
|
+
declare const Default: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("./NodeDrawer.tsx").NodeDrawerProps>;
|
|
5
5
|
export { Default };
|
|
6
6
|
export default StorybookEntry;
|
|
7
7
|
//# sourceMappingURL=NodeDrawer.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeDrawer.stories.d.ts","sourceRoot":"","sources":["../../../src/components/NodeDrawer.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACC,IAAI,EAChB,MAAM,uBAAuB,CAAA;AAQ9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAU7C,QAAA,MAAM,cAAc,EAIf,IAAI,CAAC,OAAO,UAAU,CAAC,CAAA;AAc5B,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeDrawer.stories.d.ts","sourceRoot":"","sources":["../../../src/components/NodeDrawer.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACC,IAAI,EAChB,MAAM,uBAAuB,CAAA;AAQ9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAU7C,QAAA,MAAM,cAAc,EAIf,IAAI,CAAC,OAAO,UAAU,CAAC,CAAA;AAc5B,QAAA,MAAM,OAAO,gLAAoB,CAAA;AAGjC,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,eAAe,cAAc,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts';
|
|
2
2
|
export declare const getModuleFilterOptions: (config?: ModuleFromNodeConfig) => {
|
|
3
3
|
direction: import("@xyo-network/module-model").Direction | undefined;
|
|
4
|
-
identity: import("@xylabs/object
|
|
4
|
+
identity: import("@xylabs/object").TypeCheck<import("@xyo-network/module-model").ModuleInstance<import("@xyo-network/module-model").ModuleParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/module-model").ModuleConfig>>, import("@xyo-network/module-model").ModuleEventData<object>>> | undefined;
|
|
5
5
|
maxDepth: number | undefined;
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=getModuleFilterOptions.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts';
|
|
2
2
|
export declare const getWeakModuleFilterOptions: (config?: WeakModuleFromNodeConfig) => {
|
|
3
3
|
direction: import("@xyo-network/module-model").Direction | undefined;
|
|
4
|
-
identity: import("@xylabs/object
|
|
4
|
+
identity: import("@xylabs/object").TypeCheck<import("@xyo-network/module-model").ModuleInstance<import("@xyo-network/module-model").ModuleParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/module-model").ModuleConfig>>, import("@xyo-network/module-model").ModuleEventData<object>>> | undefined;
|
|
5
5
|
maxDepth: number | undefined;
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=getWeakModuleFilterOptions.d.ts.map
|
package/dist/browser/index.mjs
CHANGED
|
@@ -1,60 +1,55 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
|
-
// src/components/Node.tsx
|
|
5
|
-
import React2 from "react";
|
|
6
|
-
|
|
7
1
|
// src/components/NodeDescriptionBox.tsx
|
|
8
2
|
import { FlexCol } from "@xylabs/react-flexbox";
|
|
9
|
-
import React from "react";
|
|
10
3
|
|
|
11
4
|
// src/hooks/getModuleFilterOptions.ts
|
|
12
|
-
var getModuleFilterOptions =
|
|
13
|
-
const {
|
|
5
|
+
var getModuleFilterOptions = (config) => {
|
|
6
|
+
const {
|
|
7
|
+
direction,
|
|
8
|
+
identity,
|
|
9
|
+
maxDepth
|
|
10
|
+
} = config ?? {};
|
|
14
11
|
return {
|
|
15
12
|
direction,
|
|
16
13
|
identity,
|
|
17
14
|
maxDepth
|
|
18
15
|
};
|
|
19
|
-
}
|
|
16
|
+
};
|
|
20
17
|
|
|
21
18
|
// src/hooks/getWeakModuleFilterOptions.ts
|
|
22
|
-
var getWeakModuleFilterOptions =
|
|
23
|
-
const {
|
|
19
|
+
var getWeakModuleFilterOptions = (config) => {
|
|
20
|
+
const {
|
|
21
|
+
direction,
|
|
22
|
+
identity,
|
|
23
|
+
maxDepth
|
|
24
|
+
} = config ?? {};
|
|
24
25
|
return {
|
|
25
26
|
direction,
|
|
26
27
|
identity,
|
|
27
28
|
maxDepth
|
|
28
29
|
};
|
|
29
|
-
}
|
|
30
|
+
};
|
|
30
31
|
|
|
31
32
|
// src/hooks/ModuleFromNodeConfig.ts
|
|
32
|
-
var getModuleFromNodeConfigLogger =
|
|
33
|
+
var getModuleFromNodeConfigLogger = (config) => {
|
|
33
34
|
return config?.logger;
|
|
34
|
-
}
|
|
35
|
+
};
|
|
35
36
|
|
|
36
37
|
// src/hooks/provided/useProvidedNode.tsx
|
|
37
38
|
import { NodeContext } from "@xyo-network/react-node-context";
|
|
38
39
|
import { use } from "react";
|
|
39
|
-
var useProvidedNode =
|
|
40
|
+
var useProvidedNode = () => {
|
|
40
41
|
const { node } = use(NodeContext);
|
|
41
|
-
return [
|
|
42
|
-
|
|
43
|
-
];
|
|
44
|
-
}, "useProvidedNode");
|
|
42
|
+
return [node];
|
|
43
|
+
};
|
|
45
44
|
|
|
46
45
|
// src/hooks/provided/useWeakProvidedNode.tsx
|
|
47
46
|
import { NodeContext as NodeContext2 } from "@xyo-network/react-node-context";
|
|
48
47
|
import { use as use2, useMemo } from "react";
|
|
49
|
-
var useWeakProvidedNode =
|
|
48
|
+
var useWeakProvidedNode = () => {
|
|
50
49
|
const { node } = use2(NodeContext2);
|
|
51
|
-
const weakNode = useMemo(() => node ? new WeakRef(node) : null, [
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return [
|
|
55
|
-
weakNode
|
|
56
|
-
];
|
|
57
|
-
}, "useWeakProvidedNode");
|
|
50
|
+
const weakNode = useMemo(() => node ? new WeakRef(node) : null, [node]);
|
|
51
|
+
return [weakNode];
|
|
52
|
+
};
|
|
58
53
|
|
|
59
54
|
// src/hooks/useModuleFromNode.ts
|
|
60
55
|
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
@@ -67,39 +62,26 @@ import { asNodeInstance } from "@xyo-network/node-model";
|
|
|
67
62
|
|
|
68
63
|
// src/hooks/useNodeConfigNodeField.ts
|
|
69
64
|
import { useMemo as useMemo2 } from "react";
|
|
70
|
-
var useNodeConfigNodeField =
|
|
71
|
-
const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [
|
|
72
|
-
|
|
73
|
-
]
|
|
74
|
-
|
|
75
|
-
config?.node
|
|
76
|
-
]);
|
|
77
|
-
return [
|
|
78
|
-
nodeAddress,
|
|
79
|
-
nodeInstance
|
|
80
|
-
];
|
|
81
|
-
}, "useNodeConfigNodeField");
|
|
65
|
+
var useNodeConfigNodeField = (config) => {
|
|
66
|
+
const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [config?.node]);
|
|
67
|
+
const nodeInstance = useMemo2(() => typeof config?.node === "object" ? config?.node : void 0, [config?.node]);
|
|
68
|
+
return [nodeAddress, nodeInstance];
|
|
69
|
+
};
|
|
82
70
|
|
|
83
71
|
// src/hooks/useNode.ts
|
|
84
|
-
var useNode =
|
|
72
|
+
var useNode = (config) => {
|
|
85
73
|
const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config);
|
|
86
74
|
const [providedNode] = useProvidedNode();
|
|
87
75
|
const [nodeAddressNode, error] = usePromise(async () => {
|
|
88
76
|
if (providedNode && nodeAddress) {
|
|
89
77
|
return asNodeInstance(await providedNode.resolve(nodeAddress), "Module is not a node");
|
|
90
78
|
}
|
|
91
|
-
}, [
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
]);
|
|
95
|
-
return [
|
|
96
|
-
nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0,
|
|
97
|
-
error
|
|
98
|
-
];
|
|
99
|
-
}, "useNode");
|
|
79
|
+
}, [providedNode, nodeAddress]);
|
|
80
|
+
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
|
|
81
|
+
};
|
|
100
82
|
|
|
101
83
|
// src/hooks/useModuleFromNode.ts
|
|
102
|
-
var useModuleFromNode =
|
|
84
|
+
var useModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
103
85
|
const [node, nodeError] = useNode(config);
|
|
104
86
|
const logger = getModuleFromNodeConfigLogger(config);
|
|
105
87
|
const filterOptions = getModuleFilterOptions(config);
|
|
@@ -130,21 +112,15 @@ var useModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = void 0
|
|
|
130
112
|
return result;
|
|
131
113
|
}
|
|
132
114
|
logger?.debug("Result: No Node");
|
|
133
|
-
}, [
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
]);
|
|
137
|
-
return [
|
|
138
|
-
result,
|
|
139
|
-
nodeError ?? error
|
|
140
|
-
];
|
|
141
|
-
}, "useModuleFromNode");
|
|
115
|
+
}, [node, nameOrAddressOrInstance]);
|
|
116
|
+
return [result, nodeError ?? error];
|
|
117
|
+
};
|
|
142
118
|
|
|
143
119
|
// src/hooks/useModulesFromNode.ts
|
|
144
120
|
import { exists } from "@xylabs/exists";
|
|
145
121
|
import { usePromise as usePromise3 } from "@xylabs/react-promise";
|
|
146
122
|
import { useState as useState2 } from "react";
|
|
147
|
-
var useModulesFromNode =
|
|
123
|
+
var useModulesFromNode = (ids, config) => {
|
|
148
124
|
const [node, nodeError] = useNode(config);
|
|
149
125
|
const logger = config?.logger;
|
|
150
126
|
const filterOptions = getModuleFilterOptions();
|
|
@@ -152,11 +128,11 @@ var useModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
152
128
|
const [, error] = usePromise3(async () => {
|
|
153
129
|
logger?.debug("useModuleFromNode: resolving");
|
|
154
130
|
if (node) {
|
|
155
|
-
const refreshModules =
|
|
131
|
+
const refreshModules = async () => {
|
|
156
132
|
const moduleInstances = ids ? (await Promise.all(ids.map((id) => node.resolve(id, filterOptions)))).filter(exists) : await node.resolve("*", filterOptions);
|
|
157
133
|
setResult(moduleInstances);
|
|
158
134
|
return moduleInstances;
|
|
159
|
-
}
|
|
135
|
+
};
|
|
160
136
|
node.on("moduleAttached", async ({ mod }) => {
|
|
161
137
|
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
162
138
|
await refreshModules();
|
|
@@ -168,62 +144,42 @@ var useModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
168
144
|
return await refreshModules();
|
|
169
145
|
}
|
|
170
146
|
console.log("Result: No Node");
|
|
171
|
-
}, [
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
]);
|
|
175
|
-
return [
|
|
176
|
-
result,
|
|
177
|
-
nodeError ?? error
|
|
178
|
-
];
|
|
179
|
-
}, "useModulesFromNode");
|
|
147
|
+
}, [node, ids]);
|
|
148
|
+
return [result, nodeError ?? error];
|
|
149
|
+
};
|
|
180
150
|
|
|
181
151
|
// src/hooks/useNodeDescription.ts
|
|
182
152
|
import { usePromise as usePromise4 } from "@xylabs/react-promise";
|
|
183
153
|
import { ModuleDescriptionSchema } from "@xyo-network/module-model";
|
|
184
154
|
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
185
|
-
var useNodeDescription =
|
|
155
|
+
var useNodeDescription = (config) => {
|
|
186
156
|
const [activeNode, nodeError] = useNode(config);
|
|
187
157
|
const [description, error] = usePromise4(async () => {
|
|
188
158
|
const state = await activeNode?.state();
|
|
189
159
|
return state?.find(isPayloadOfSchemaType(ModuleDescriptionSchema));
|
|
190
|
-
}, [
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
return [
|
|
194
|
-
description,
|
|
195
|
-
nodeError ?? error
|
|
196
|
-
];
|
|
197
|
-
}, "useNodeDescription");
|
|
160
|
+
}, [activeNode]);
|
|
161
|
+
return [description, nodeError ?? error];
|
|
162
|
+
};
|
|
198
163
|
|
|
199
164
|
// src/hooks/useNodeFromNode.tsx
|
|
200
165
|
import { asNodeInstance as asNodeInstance2 } from "@xyo-network/node-model";
|
|
201
|
-
var useNodeFromNode =
|
|
166
|
+
var useNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
202
167
|
const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config);
|
|
203
168
|
const instance = asNodeInstance2(mod);
|
|
204
169
|
if (mod && !instance) {
|
|
205
170
|
const error2 = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`);
|
|
206
171
|
console.error(error2.message);
|
|
207
|
-
return [
|
|
208
|
-
void 0,
|
|
209
|
-
error2
|
|
210
|
-
];
|
|
172
|
+
return [void 0, error2];
|
|
211
173
|
}
|
|
212
|
-
return [
|
|
213
|
-
|
|
214
|
-
error
|
|
215
|
-
];
|
|
216
|
-
}, "useNodeFromNode");
|
|
174
|
+
return [instance, error];
|
|
175
|
+
};
|
|
217
176
|
|
|
218
177
|
// src/hooks/useNodesFromNode.tsx
|
|
219
178
|
import { isNodeInstance } from "@xyo-network/node-model";
|
|
220
|
-
var useNodesFromNode =
|
|
179
|
+
var useNodesFromNode = (ids, config) => {
|
|
221
180
|
const [modules, error] = useModulesFromNode(ids, config);
|
|
222
181
|
if (error) {
|
|
223
|
-
return [
|
|
224
|
-
null,
|
|
225
|
-
error
|
|
226
|
-
];
|
|
182
|
+
return [null, error];
|
|
227
183
|
}
|
|
228
184
|
return modules ? [
|
|
229
185
|
// eslint-disable-next-line unicorn/no-array-reduce
|
|
@@ -234,11 +190,8 @@ var useNodesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
234
190
|
return prev;
|
|
235
191
|
}, []),
|
|
236
192
|
void 0
|
|
237
|
-
] : [
|
|
238
|
-
|
|
239
|
-
error
|
|
240
|
-
];
|
|
241
|
-
}, "useNodesFromNode");
|
|
193
|
+
] : [modules, error];
|
|
194
|
+
};
|
|
242
195
|
|
|
243
196
|
// src/hooks/useWeakModuleFromNode.ts
|
|
244
197
|
import { usePromise as usePromise6 } from "@xylabs/react-promise";
|
|
@@ -252,47 +205,32 @@ import { asNodeInstance as asNodeInstance3 } from "@xyo-network/node-model";
|
|
|
252
205
|
|
|
253
206
|
// src/hooks/useWeakNodeConfigNodeField.ts
|
|
254
207
|
import { useMemo as useMemo3 } from "react";
|
|
255
|
-
var useWeakNodeConfigNodeField =
|
|
256
|
-
const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [
|
|
257
|
-
|
|
258
|
-
]
|
|
259
|
-
|
|
260
|
-
config?.node
|
|
261
|
-
]);
|
|
262
|
-
return [
|
|
263
|
-
nodeAddress,
|
|
264
|
-
nodeInstance
|
|
265
|
-
];
|
|
266
|
-
}, "useWeakNodeConfigNodeField");
|
|
208
|
+
var useWeakNodeConfigNodeField = (config) => {
|
|
209
|
+
const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [config?.node]);
|
|
210
|
+
const nodeInstance = useMemo3(() => typeof config?.node === "object" ? config?.node : void 0, [config?.node]);
|
|
211
|
+
return [nodeAddress, nodeInstance];
|
|
212
|
+
};
|
|
267
213
|
|
|
268
214
|
// src/hooks/useWeakNode.ts
|
|
269
|
-
var useWeakNode =
|
|
215
|
+
var useWeakNode = (config) => {
|
|
270
216
|
const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config);
|
|
271
217
|
const [providedNode] = useWeakProvidedNode();
|
|
272
218
|
const [nodeAddressNode, error] = usePromise5(async () => {
|
|
273
219
|
const providedNodeInstance = providedNode?.deref();
|
|
274
220
|
if (providedNodeInstance && isDefined(nodeAddress)) {
|
|
275
|
-
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), () => "Module is not a node", {
|
|
276
|
-
required: true
|
|
277
|
-
}));
|
|
221
|
+
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), () => "Module is not a node", { required: true }));
|
|
278
222
|
}
|
|
279
|
-
}, [
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
]);
|
|
283
|
-
return [
|
|
284
|
-
nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0,
|
|
285
|
-
error
|
|
286
|
-
];
|
|
287
|
-
}, "useWeakNode");
|
|
223
|
+
}, [providedNode, nodeAddress]);
|
|
224
|
+
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
|
|
225
|
+
};
|
|
288
226
|
|
|
289
227
|
// src/hooks/WeakModuleFromNodeConfig.ts
|
|
290
|
-
var getWeakModuleFromNodeConfigLogger =
|
|
228
|
+
var getWeakModuleFromNodeConfigLogger = (config) => {
|
|
291
229
|
return config?.logger;
|
|
292
|
-
}
|
|
230
|
+
};
|
|
293
231
|
|
|
294
232
|
// src/hooks/useWeakModuleFromNode.ts
|
|
295
|
-
var useWeakModuleFromNode =
|
|
233
|
+
var useWeakModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
296
234
|
const [node, nodeError] = useWeakNode(config);
|
|
297
235
|
const logger = getWeakModuleFromNodeConfigLogger(config);
|
|
298
236
|
const filterOptions = getWeakModuleFilterOptions(config);
|
|
@@ -324,21 +262,15 @@ var useWeakModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = vo
|
|
|
324
262
|
return result;
|
|
325
263
|
}
|
|
326
264
|
logger?.debug("Result: No Node");
|
|
327
|
-
}, [
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
]);
|
|
331
|
-
return [
|
|
332
|
-
result,
|
|
333
|
-
nodeError ?? error
|
|
334
|
-
];
|
|
335
|
-
}, "useWeakModuleFromNode");
|
|
265
|
+
}, [node, nameOrAddressOrInstance]);
|
|
266
|
+
return [result, nodeError ?? error];
|
|
267
|
+
};
|
|
336
268
|
|
|
337
269
|
// src/hooks/useWeakModulesFromNode.ts
|
|
338
270
|
import { exists as exists2 } from "@xylabs/exists";
|
|
339
271
|
import { usePromise as usePromise7 } from "@xylabs/react-promise";
|
|
340
272
|
import { useState as useState4 } from "react";
|
|
341
|
-
var useWeakModulesFromNode =
|
|
273
|
+
var useWeakModulesFromNode = (ids, config) => {
|
|
342
274
|
const [node, nodeError] = useNode(config);
|
|
343
275
|
const logger = config?.logger;
|
|
344
276
|
const filterOptions = getModuleFilterOptions();
|
|
@@ -347,11 +279,11 @@ var useWeakModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
347
279
|
logger?.debug("useModuleFromNode: resolving");
|
|
348
280
|
const nodeInstance = node;
|
|
349
281
|
if (nodeInstance) {
|
|
350
|
-
const refreshModules =
|
|
282
|
+
const refreshModules = async () => {
|
|
351
283
|
const moduleInstances = ids ? (await Promise.all(ids.map((id) => node.resolve(id, filterOptions)))).filter(exists2) : await node.resolve("*", filterOptions);
|
|
352
284
|
setResult(moduleInstances.map((mod) => new WeakRef(mod)));
|
|
353
285
|
return moduleInstances;
|
|
354
|
-
}
|
|
286
|
+
};
|
|
355
287
|
nodeInstance.on("moduleAttached", async ({ mod }) => {
|
|
356
288
|
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
357
289
|
await refreshModules();
|
|
@@ -364,197 +296,137 @@ var useWeakModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
364
296
|
}
|
|
365
297
|
console.log("Result: No Node");
|
|
366
298
|
return;
|
|
367
|
-
}, [
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
]);
|
|
371
|
-
return [
|
|
372
|
-
result,
|
|
373
|
-
nodeError ?? error
|
|
374
|
-
];
|
|
375
|
-
}, "useWeakModulesFromNode");
|
|
299
|
+
}, [node, ids]);
|
|
300
|
+
return [result, nodeError ?? error];
|
|
301
|
+
};
|
|
376
302
|
|
|
377
303
|
// src/hooks/useWeakNodeDescription.ts
|
|
378
304
|
import { usePromise as usePromise8 } from "@xylabs/react-promise";
|
|
379
305
|
import { ModuleDescriptionSchema as ModuleDescriptionSchema2 } from "@xyo-network/module-model";
|
|
380
306
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
|
|
381
|
-
var useWeakNodeDescription =
|
|
307
|
+
var useWeakNodeDescription = (config) => {
|
|
382
308
|
const [activeNode, nodeError] = useWeakNode(config);
|
|
383
309
|
const [description, error] = usePromise8(async () => {
|
|
384
310
|
const state = await activeNode?.deref()?.state();
|
|
385
311
|
return state?.find(isPayloadOfSchemaType2(ModuleDescriptionSchema2));
|
|
386
|
-
}, [
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
return [
|
|
390
|
-
description,
|
|
391
|
-
nodeError ?? error
|
|
392
|
-
];
|
|
393
|
-
}, "useWeakNodeDescription");
|
|
312
|
+
}, [activeNode]);
|
|
313
|
+
return [description, nodeError ?? error];
|
|
314
|
+
};
|
|
394
315
|
|
|
395
316
|
// src/hooks/useWeakNodeFromNode.tsx
|
|
396
317
|
import { isNodeInstance as isNodeInstance2 } from "@xyo-network/node-model";
|
|
397
|
-
var useWeakNodeFromNode =
|
|
398
|
-
return useWeakModuleFromNode(nameOrAddressOrInstance, {
|
|
399
|
-
|
|
400
|
-
...config
|
|
401
|
-
});
|
|
402
|
-
}, "useWeakNodeFromNode");
|
|
318
|
+
var useWeakNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
319
|
+
return useWeakModuleFromNode(nameOrAddressOrInstance, { identity: isNodeInstance2, ...config });
|
|
320
|
+
};
|
|
403
321
|
|
|
404
322
|
// src/components/NodeDescriptionBox.tsx
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
});
|
|
409
|
-
|
|
410
|
-
color: error ? "red" : void 0
|
|
411
|
-
}, error ? error.message : JSON.stringify(description, null, 2)));
|
|
412
|
-
}, "NodeDescriptionBox");
|
|
323
|
+
import { jsx } from "react/jsx-runtime";
|
|
324
|
+
var NodeDescriptionBox = ({ node, ...props }) => {
|
|
325
|
+
const [description, error] = useWeakNodeDescription({ node });
|
|
326
|
+
return /* @__PURE__ */ jsx(FlexCol, { ...props, children: /* @__PURE__ */ jsx("code", { color: error ? "red" : void 0, children: error ? error.message : JSON.stringify(description, null, 2) }) });
|
|
327
|
+
};
|
|
413
328
|
|
|
414
329
|
// src/components/Node.tsx
|
|
415
|
-
|
|
330
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
331
|
+
var NodeBox = ({ variant, ...props }) => {
|
|
416
332
|
switch (variant) {
|
|
417
333
|
// eslint-disable-next-line unicorn/no-useless-switch-case
|
|
418
334
|
case "description":
|
|
419
335
|
default: {
|
|
420
|
-
return /* @__PURE__ */
|
|
336
|
+
return /* @__PURE__ */ jsx2(NodeDescriptionBox, { ...props });
|
|
421
337
|
}
|
|
422
338
|
}
|
|
423
|
-
}
|
|
339
|
+
};
|
|
424
340
|
|
|
425
341
|
// src/components/NodeDrawer.tsx
|
|
426
342
|
import { Close as CloseIcon } from "@mui/icons-material";
|
|
427
|
-
import {
|
|
343
|
+
import {
|
|
344
|
+
ClickAwayListener,
|
|
345
|
+
Drawer,
|
|
346
|
+
IconButton
|
|
347
|
+
} from "@mui/material";
|
|
428
348
|
import { FlexGrowCol, FlexRow } from "@xylabs/react-flexbox";
|
|
429
349
|
import { useNodeDrawer } from "@xyo-network/react-node-provider";
|
|
430
|
-
import React5 from "react";
|
|
431
350
|
|
|
432
351
|
// src/components/render/ModuleDescriptionBox.tsx
|
|
433
352
|
import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from "@mui/icons-material";
|
|
434
353
|
import { styled as styled2, Typography } from "@mui/material";
|
|
435
354
|
import { SimpleTreeView } from "@mui/x-tree-view";
|
|
436
|
-
import
|
|
355
|
+
import { useRef } from "react";
|
|
437
356
|
|
|
438
357
|
// src/components/render/RenderModule.tsx
|
|
439
358
|
import { styled } from "@mui/material";
|
|
440
359
|
import { TreeItem } from "@mui/x-tree-view";
|
|
441
360
|
import { useAsyncEffect } from "@xylabs/react-async-effect";
|
|
442
|
-
import
|
|
443
|
-
|
|
361
|
+
import { useState as useState5 } from "react";
|
|
362
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
363
|
+
var RenderModule = ({ mod, idRef }) => {
|
|
444
364
|
const [childModules, setChildModules] = useState5();
|
|
445
|
-
useAsyncEffect(
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
365
|
+
useAsyncEffect(
|
|
366
|
+
async (mounted) => {
|
|
367
|
+
const moduleInstance2 = mod.deref();
|
|
368
|
+
const { address: address2 } = moduleInstance2 ?? {};
|
|
369
|
+
if (moduleInstance2) {
|
|
370
|
+
const children = (await moduleInstance2.resolve("*")).filter((childModule) => childModule.address !== address2);
|
|
371
|
+
if (mounted()) {
|
|
372
|
+
setChildModules(children.map((childModule) => new WeakRef(childModule)));
|
|
373
|
+
}
|
|
452
374
|
}
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
const increment = /* @__PURE__ */ __name(() => {
|
|
375
|
+
},
|
|
376
|
+
[mod]
|
|
377
|
+
);
|
|
378
|
+
const increment = () => {
|
|
458
379
|
const newId = (idRef.current.idIncrementor++).toString();
|
|
459
380
|
idRef.current.ids.push(newId);
|
|
460
381
|
return newId;
|
|
461
|
-
}
|
|
382
|
+
};
|
|
462
383
|
const moduleInstance = mod.deref();
|
|
463
384
|
const { queries, address } = moduleInstance ?? {};
|
|
464
|
-
return /* @__PURE__ */
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
});
|
|
476
|
-
}), childModules && childModules.length > 0 ? /* @__PURE__ */ React3.createElement(TreeItem, {
|
|
477
|
-
itemId: increment(),
|
|
478
|
-
label: "children",
|
|
479
|
-
sx: {
|
|
480
|
-
mb: 0.5
|
|
481
|
-
}
|
|
482
|
-
}, childModules.map((childModuleRef) => {
|
|
483
|
-
const childModule = childModuleRef.deref();
|
|
484
|
-
return childModule ? /* @__PURE__ */ React3.createElement(RenderModule, {
|
|
485
|
-
key: childModule?.address,
|
|
486
|
-
mod: childModuleRef,
|
|
487
|
-
idRef
|
|
488
|
-
}) : null;
|
|
489
|
-
})) : null);
|
|
490
|
-
}, "RenderModule");
|
|
491
|
-
var StyledAddressTreeItem = styled(TreeItem, {
|
|
492
|
-
name: "StyledAddressTreeItem"
|
|
493
|
-
})(({ theme }) => ({
|
|
494
|
-
"& .MuiTreeItem-content": {
|
|
495
|
-
marginBottom: theme.spacing(0.25)
|
|
496
|
-
}
|
|
497
|
-
}));
|
|
385
|
+
return /* @__PURE__ */ jsxs(StyledAddressTreeItem, { itemId: increment(), label: `address: ${address}`, children: [
|
|
386
|
+
queries?.map((query, index) => {
|
|
387
|
+
return /* @__PURE__ */ jsx3(TreeItem, { itemId: increment(), label: `query : ${query}`, sx: { mb: index === queries.length - 1 ? 1.5 : 0.5 } }, query);
|
|
388
|
+
}),
|
|
389
|
+
childModules && childModules.length > 0 ? /* @__PURE__ */ jsx3(TreeItem, { itemId: increment(), label: "children", sx: { mb: 0.5 }, children: childModules.map((childModuleRef) => {
|
|
390
|
+
const childModule = childModuleRef.deref();
|
|
391
|
+
return childModule ? /* @__PURE__ */ jsx3(RenderModule, { mod: childModuleRef, idRef }, childModule?.address) : null;
|
|
392
|
+
}) }) : null
|
|
393
|
+
] });
|
|
394
|
+
};
|
|
395
|
+
var StyledAddressTreeItem = styled(TreeItem, { name: "StyledAddressTreeItem" })(({ theme }) => ({ "& .MuiTreeItem-content": { marginBottom: theme.spacing(0.25) } }));
|
|
498
396
|
|
|
499
397
|
// src/components/render/ModuleDescriptionBox.tsx
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
mod,
|
|
518
|
-
idRef
|
|
519
|
-
}))) : mod === null ? /* @__PURE__ */ React4.createElement(Typography, {
|
|
520
|
-
variant: "h4"
|
|
521
|
-
}, "Node loading...") : /* @__PURE__ */ React4.createElement(Typography, {
|
|
522
|
-
variant: "h4"
|
|
523
|
-
}, "Node not found"));
|
|
524
|
-
}, "ModuleDescriptionBox");
|
|
525
|
-
var StyledTreeView = styled2(SimpleTreeView, {
|
|
526
|
-
name: "StyledTreeView"
|
|
527
|
-
})(() => ({
|
|
398
|
+
import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
399
|
+
var ModuleDescriptionBox = ({ mod }) => {
|
|
400
|
+
const idRef = useRef({ idIncrementor: 0, ids: [] });
|
|
401
|
+
return /* @__PURE__ */ jsx4(Fragment, { children: mod ? /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
402
|
+
/* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node Configuration" }),
|
|
403
|
+
/* @__PURE__ */ jsx4(
|
|
404
|
+
StyledTreeView,
|
|
405
|
+
{
|
|
406
|
+
"aria-label": "file system navigator",
|
|
407
|
+
slots: { collapseIcon: ExpandMoreIcon, expandIcon: ChevronRightIcon },
|
|
408
|
+
sx: { flexGrow: 1 },
|
|
409
|
+
children: /* @__PURE__ */ jsx4(RenderModule, { mod, idRef })
|
|
410
|
+
}
|
|
411
|
+
)
|
|
412
|
+
] }) : mod === null ? /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node loading..." }) : /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node not found" }) });
|
|
413
|
+
};
|
|
414
|
+
var StyledTreeView = styled2(SimpleTreeView, { name: "StyledTreeView" })(() => ({
|
|
528
415
|
height: "auto",
|
|
529
416
|
maxWidth: "auto"
|
|
530
417
|
}));
|
|
531
418
|
|
|
532
419
|
// src/components/NodeDrawer.tsx
|
|
533
|
-
|
|
420
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
421
|
+
var NodeDrawer = ({ children, ...props }) => {
|
|
534
422
|
const { open, setOpen } = useNodeDrawer();
|
|
535
423
|
const [node] = useWeakProvidedNode();
|
|
536
|
-
return /* @__PURE__ */
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
}, /* @__PURE__ */ React5.createElement(FlexGrowCol, {
|
|
543
|
-
role: "presentation",
|
|
544
|
-
justifyContent: "start",
|
|
545
|
-
p: 2,
|
|
546
|
-
rowGap: 2,
|
|
547
|
-
minWidth: "33vw"
|
|
548
|
-
}, /* @__PURE__ */ React5.createElement(FlexRow, {
|
|
549
|
-
alignContent: "start",
|
|
550
|
-
justifyContent: "start",
|
|
551
|
-
width: "100%"
|
|
552
|
-
}, /* @__PURE__ */ React5.createElement(IconButton, {
|
|
553
|
-
onClick: /* @__PURE__ */ __name(() => setOpen?.(false), "onClick")
|
|
554
|
-
}, /* @__PURE__ */ React5.createElement(CloseIcon, null))), /* @__PURE__ */ React5.createElement(ModuleDescriptionBox, {
|
|
555
|
-
mod: node
|
|
556
|
-
}), children)));
|
|
557
|
-
}, "NodeDrawer");
|
|
424
|
+
return /* @__PURE__ */ jsx5(Drawer, { open: open ?? false, anchor: "right", ...props, children: /* @__PURE__ */ jsx5(ClickAwayListener, { onClickAway: () => setOpen?.(false), children: /* @__PURE__ */ jsxs3(FlexGrowCol, { role: "presentation", justifyContent: "start", p: 2, rowGap: 2, minWidth: "33vw", children: [
|
|
425
|
+
/* @__PURE__ */ jsx5(FlexRow, { alignContent: "start", justifyContent: "start", width: "100%", children: /* @__PURE__ */ jsx5(IconButton, { onClick: () => setOpen?.(false), children: /* @__PURE__ */ jsx5(CloseIcon, {}) }) }),
|
|
426
|
+
/* @__PURE__ */ jsx5(ModuleDescriptionBox, { mod: node }),
|
|
427
|
+
children
|
|
428
|
+
] }) }) });
|
|
429
|
+
};
|
|
558
430
|
|
|
559
431
|
// src/index.ts
|
|
560
432
|
export * from "@xyo-network/react-node-context";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/Node.tsx","../../src/components/NodeDescriptionBox.tsx","../../src/hooks/getModuleFilterOptions.ts","../../src/hooks/getWeakModuleFilterOptions.ts","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/provided/useWeakProvidedNode.tsx","../../src/hooks/useModuleFromNode.ts","../../src/hooks/useNode.ts","../../src/hooks/useNodeConfigNodeField.ts","../../src/hooks/useModulesFromNode.ts","../../src/hooks/useNodeDescription.ts","../../src/hooks/useNodeFromNode.tsx","../../src/hooks/useNodesFromNode.tsx","../../src/hooks/useWeakModuleFromNode.ts","../../src/hooks/useWeakNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeDescription.ts","../../src/hooks/useWeakNodeFromNode.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx","../../src/index.ts"],"sourcesContent":["import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport React from 'react'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox.tsx'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n variant?: 'description'\n}\n\nexport const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {\n switch (variant) {\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case 'description':\n default: {\n return <NodeDescriptionBox {...props} />\n }\n }\n}\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport React from 'react'\n\nimport { useWeakNodeDescription } from '../hooks/index.ts'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useWeakNodeDescription({ node })\n\n return (\n <FlexCol {...props}>\n <code color={error ? 'red' : undefined}>{error ? error.message : JSON.stringify(description, null, 2)}</code>\n </FlexCol>\n )\n}\n","import type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\n\nexport const getModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const {\n direction, identity, maxDepth,\n } = config ?? {}\n return {\n direction, identity, maxDepth,\n }\n}\n","import type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const getWeakModuleFilterOptions = (config?: WeakModuleFromNodeConfig) => {\n const {\n direction, identity, maxDepth,\n } = config ?? {}\n return {\n direction, identity, maxDepth,\n }\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const getModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { use } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = use(NodeContext)\n return [node]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { use, useMemo } from 'react'\n\nexport const useWeakProvidedNode = (): [WeakRef<NodeInstance> | null | undefined] => {\n const { node } = use(NodeContext)\n const weakNode = useMemo(() => (node ? new WeakRef(node) : null), [node])\n return [weakNode]\n}\n","import type { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { isModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { getModuleFromNodeConfigLogger } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: T extends ModuleInstance ? ModuleFromNodeConfig<T> : ModuleFromNodeConfig | undefined,\n): [(T extends ModuleInstance ? T : ModuleInstance) | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = getModuleFromNodeConfigLogger(config)\n const filterOptions = getModuleFilterOptions(config)\n const [result, setResult] = useState<(T extends ModuleInstance ? T : ModuleInstance) | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(identity(mod) ? (mod as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n node.on('moduleDetached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? (result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useProvidedNode } from './provided/index.ts'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField.ts'\n\nexport const useNode = (config?: ModuleFromNodeConfig | undefined): [NodeInstance | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config)\n const [providedNode] = useProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n if (providedNode && nodeAddress) {\n return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node')\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\n\nexport const useNodeConfigNodeField = (config?: ModuleFromNodeConfig | undefined): [string | undefined, NodeInstance | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import { exists } from '@xylabs/exists'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\n/** @deprecated use useWeakModulesFromNode */\nexport const useModulesFromNode = (ids?: ModuleIdentifier[], config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = getModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n const refreshModules = async () => {\n const moduleInstances = ids\n ? (await Promise.all(ids.map(id => node.resolve(id, filterOptions)))).filter(exists)\n : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n node.on('moduleAttached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n node.on('moduleDetached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n return await refreshModules()\n }\n console.log('Result: No Node')\n }, [node, ids])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescription, ModuleDescriptionPayload } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\nexport const useNodeDescription = (config?: ModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useModuleFromNode } from './useModuleFromNode.ts'\n\n/** @deprecated use useWeakNodeFromNode instead */\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(mod)\n if (mod && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useModulesFromNode } from './useModulesFromNode.ts'\n\n/** @deprecated use useWeakNodesFromNode */\nexport const useNodesFromNode = (ids?: ModuleIdentifier[], config?: ModuleFromNodeConfig): [NodeInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(ids, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<NodeInstance[]>((prev, mod) => {\n if (isNodeInstance(mod)) {\n prev.push(mod)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import type { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { isModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getWeakModuleFilterOptions } from './getWeakModuleFilterOptions.ts'\nimport { useWeakNode } from './useWeakNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\nimport { getWeakModuleFromNodeConfigLogger } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useWeakNode(config)\n const logger = getWeakModuleFromNodeConfigLogger(config)\n const filterOptions = getWeakModuleFilterOptions(config)\n const [result, setResult] = useState<WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n const nodeInstance = node?.deref()\n if (nodeInstance && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(identity(mod) ? new WeakRef(mod as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance as T extends ModuleInstance ? T : ModuleInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? new WeakRef(result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isDefined } from '@xylabs/typeof'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakProvidedNode } from './provided/index.ts'\nimport { useWeakNodeConfigNodeField } from './useWeakNodeConfigNodeField.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNode = (config?: WeakModuleFromNodeConfig | undefined): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config)\n const [providedNode] = useWeakProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n const providedNodeInstance = providedNode?.deref()\n if (providedNodeInstance && isDefined(nodeAddress)) {\n return new WeakRef(asNodeInstance(await providedNodeInstance.resolve(nodeAddress), () => 'Module is not a node', { required: true }))\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeConfigNodeField = (\n config?: WeakModuleFromNodeConfig | undefined,\n): [string | undefined, WeakRef<NodeInstance> | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { ModuleFilterOptions } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const getWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { exists } from '@xylabs/exists'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\nexport const useWeakModulesFromNode = (\n ids?: ModuleIdentifier[],\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = getModuleFilterOptions()\n const [result, setResult] = useState<WeakRef<ModuleInstance>[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance) {\n const refreshModules = async () => {\n const moduleInstances = ids\n ? (await Promise.all(ids.map(id => node.resolve(id, filterOptions)))).filter(exists)\n : await node.resolve('*', filterOptions)\n setResult(moduleInstances.map(mod => new WeakRef(mod)))\n return moduleInstances\n }\n nodeInstance.on('moduleAttached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n nodeInstance.on('moduleDetached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n return await refreshModules()\n }\n console.log('Result: No Node')\n return\n }, [node, ids])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescription, ModuleDescriptionPayload } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { useWeakNode } from './useWeakNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeDescription = (config?: WeakModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useWeakNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.deref()?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakModuleFromNode } from './useWeakModuleFromNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<NodeInstance>(nameOrAddressOrInstance, { identity: isNodeInstance, ...config })\n}\n","import { Close as CloseIcon } from '@mui/icons-material'\nimport type { DrawerProps } from '@mui/material'\nimport {\n ClickAwayListener, Drawer, IconButton,\n} from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { useWeakProvidedNode } from '../hooks/index.ts'\nimport { ModuleDescriptionBox } from './render/index.ts'\n\nexport interface NodeDrawerProps extends PropsWithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useWeakProvidedNode()\n\n return (\n <Drawer open={open ?? false} anchor=\"right\" {...props}>\n <ClickAwayListener onClickAway={() => setOpen?.(false)}>\n <FlexGrowCol role=\"presentation\" justifyContent=\"start\" p={2} rowGap={2} minWidth=\"33vw\">\n <FlexRow alignContent=\"start\" justifyContent=\"start\" width=\"100%\">\n <IconButton onClick={() => setOpen?.(false)}>\n <CloseIcon />\n </IconButton>\n </FlexRow>\n <ModuleDescriptionBox mod={node} />\n {children}\n </FlexGrowCol>\n </ClickAwayListener>\n </Drawer>\n )\n}\n","import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport { styled, Typography } from '@mui/material'\nimport { SimpleTreeView } from '@mui/x-tree-view'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport React, { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule.tsx'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n mod?: WeakRef<ModuleInstance> | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ mod }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {mod\n ? (\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n slots={{ collapseIcon: ExpandMoreIcon, expandIcon: ChevronRightIcon }}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule mod={mod} idRef={idRef} />\n </StyledTreeView>\n </>\n )\n : mod === null\n ? <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(SimpleTreeView, { name: 'StyledTreeView' })(() => ({\n height: 'auto',\n maxWidth: 'auto',\n}))\n","import { styled } from '@mui/material'\nimport { TreeItem } from '@mui/x-tree-view'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport type { MutableRefObject } from 'react'\nimport React, { useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n mod: WeakRef<ModuleInstance>\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ mod, idRef }) => {\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n\n async (mounted) => {\n const moduleInstance = mod.deref()\n const { address } = moduleInstance ?? {}\n if (moduleInstance) {\n const children = (await moduleInstance.resolve('*')).filter(childModule => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map(childModule => new WeakRef(childModule)))\n }\n }\n },\n [mod],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n const moduleInstance = mod.deref()\n const { queries, address } = moduleInstance ?? {}\n\n return (\n <StyledAddressTreeItem itemId={increment()} label={`address: ${address}`}>\n {queries?.map((query, index) => {\n return <TreeItem key={query} itemId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0\n ? (\n <TreeItem itemId={increment()} label=\"children\" sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} mod={childModuleRef} idRef={idRef} /> : null\n })}\n </TreeItem>\n )\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => (\n { '& .MuiTreeItem-content': { marginBottom: theme.spacing(0.25) } }\n))\n","export * from './components/index.ts'\nexport * from './hooks/index.ts'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n"],"mappings":"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","names":["React","FlexCol","React","getModuleFilterOptions","config","direction","identity","maxDepth","getWeakModuleFilterOptions","config","direction","identity","maxDepth","getModuleFromNodeConfigLogger","config","logger","NodeContext","use","useProvidedNode","node","use","NodeContext","NodeContext","use","useMemo","useWeakProvidedNode","node","use","NodeContext","weakNode","useMemo","WeakRef","usePromise","isModuleInstance","useState","usePromise","asNodeInstance","useMemo","useNodeConfigNodeField","config","nodeAddress","useMemo","node","undefined","nodeInstance","useNode","config","nodeAddress","nodeInstance","useNodeConfigNodeField","providedNode","useProvidedNode","nodeAddressNode","error","usePromise","asNodeInstance","resolve","undefined","useModuleFromNode","nameOrAddressOrInstance","undefined","config","node","nodeError","useNode","logger","getModuleFromNodeConfigLogger","filterOptions","getModuleFilterOptions","result","setResult","useState","error","usePromise","debug","identity","isModuleInstance","on","mod","name","address","resolve","exists","usePromise","useState","useModulesFromNode","ids","config","node","nodeError","useNode","logger","filterOptions","getModuleFilterOptions","result","setResult","useState","error","usePromise","debug","refreshModules","moduleInstances","Promise","all","map","id","resolve","filter","exists","on","mod","name","address","console","log","usePromise","ModuleDescriptionSchema","isPayloadOfSchemaType","useNodeDescription","config","activeNode","nodeError","useNode","description","error","usePromise","state","find","isPayloadOfSchemaType","ModuleDescriptionSchema","asNodeInstance","useNodeFromNode","nameOrAddressOrInstance","config","mod","error","useModuleFromNode","instance","asNodeInstance","Error","schema","name","address","console","message","undefined","isNodeInstance","useNodesFromNode","ids","config","modules","error","useModulesFromNode","reduce","prev","mod","isNodeInstance","push","undefined","usePromise","isModuleInstance","useState","usePromise","isDefined","asNodeInstance","useMemo","useWeakNodeConfigNodeField","config","nodeAddress","useMemo","node","undefined","nodeInstance","useWeakNode","config","nodeAddress","nodeInstance","useWeakNodeConfigNodeField","providedNode","useWeakProvidedNode","nodeAddressNode","error","usePromise","providedNodeInstance","deref","isDefined","WeakRef","asNodeInstance","resolve","required","undefined","getWeakModuleFromNodeConfigLogger","config","logger","useWeakModuleFromNode","nameOrAddressOrInstance","undefined","config","node","nodeError","useWeakNode","logger","getWeakModuleFromNodeConfigLogger","filterOptions","getWeakModuleFilterOptions","result","setResult","useState","error","usePromise","debug","identity","isModuleInstance","nodeInstance","deref","on","mod","name","address","WeakRef","resolve","exists","usePromise","useState","useWeakModulesFromNode","ids","config","node","nodeError","useNode","logger","filterOptions","getModuleFilterOptions","result","setResult","useState","error","usePromise","debug","nodeInstance","refreshModules","moduleInstances","Promise","all","map","id","resolve","filter","exists","mod","WeakRef","on","name","address","console","log","usePromise","ModuleDescriptionSchema","isPayloadOfSchemaType","useWeakNodeDescription","config","activeNode","nodeError","useWeakNode","description","error","usePromise","state","deref","find","isPayloadOfSchemaType","ModuleDescriptionSchema","isNodeInstance","useWeakNodeFromNode","nameOrAddressOrInstance","config","useWeakModuleFromNode","identity","isNodeInstance","NodeDescriptionBox","node","props","description","error","useWeakNodeDescription","FlexCol","code","color","undefined","message","JSON","stringify","NodeBox","variant","props","React","NodeDescriptionBox","Close","CloseIcon","ClickAwayListener","Drawer","IconButton","FlexGrowCol","FlexRow","useNodeDrawer","React","ChevronRight","ChevronRightIcon","ExpandMore","ExpandMoreIcon","styled","Typography","SimpleTreeView","React","useRef","styled","TreeItem","useAsyncEffect","React","useState","RenderModule","mod","idRef","childModules","setChildModules","useState","useAsyncEffect","mounted","moduleInstance","deref","address","children","resolve","filter","childModule","map","WeakRef","increment","newId","current","idIncrementor","toString","ids","push","queries","React","StyledAddressTreeItem","itemId","label","query","index","TreeItem","key","sx","mb","length","childModuleRef","styled","name","theme","marginBottom","spacing","ModuleDescriptionBox","mod","idRef","useRef","idIncrementor","ids","React","Typography","variant","StyledTreeView","aria-label","slots","collapseIcon","ExpandMoreIcon","expandIcon","ChevronRightIcon","sx","flexGrow","RenderModule","styled","SimpleTreeView","name","height","maxWidth","NodeDrawer","children","props","open","setOpen","useNodeDrawer","node","useWeakProvidedNode","React","Drawer","anchor","ClickAwayListener","onClickAway","FlexGrowCol","role","justifyContent","p","rowGap","minWidth","FlexRow","alignContent","width","IconButton","onClick","CloseIcon","ModuleDescriptionBox","mod"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/NodeDescriptionBox.tsx","../../src/hooks/getModuleFilterOptions.ts","../../src/hooks/getWeakModuleFilterOptions.ts","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/provided/useWeakProvidedNode.tsx","../../src/hooks/useModuleFromNode.ts","../../src/hooks/useNode.ts","../../src/hooks/useNodeConfigNodeField.ts","../../src/hooks/useModulesFromNode.ts","../../src/hooks/useNodeDescription.ts","../../src/hooks/useNodeFromNode.tsx","../../src/hooks/useNodesFromNode.tsx","../../src/hooks/useWeakModuleFromNode.ts","../../src/hooks/useWeakNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeDescription.ts","../../src/hooks/useWeakNodeFromNode.tsx","../../src/components/Node.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx","../../src/index.ts"],"sourcesContent":["import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport React from 'react'\n\nimport { useWeakNodeDescription } from '../hooks/index.ts'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useWeakNodeDescription({ node })\n\n return (\n <FlexCol {...props}>\n <code color={error ? 'red' : undefined}>{error ? error.message : JSON.stringify(description, null, 2)}</code>\n </FlexCol>\n )\n}\n","import type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\n\nexport const getModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const {\n direction, identity, maxDepth,\n } = config ?? {}\n return {\n direction, identity, maxDepth,\n }\n}\n","import type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const getWeakModuleFilterOptions = (config?: WeakModuleFromNodeConfig) => {\n const {\n direction, identity, maxDepth,\n } = config ?? {}\n return {\n direction, identity, maxDepth,\n }\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const getModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { use } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = use(NodeContext)\n return [node]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { use, useMemo } from 'react'\n\nexport const useWeakProvidedNode = (): [WeakRef<NodeInstance> | null | undefined] => {\n const { node } = use(NodeContext)\n const weakNode = useMemo(() => (node ? new WeakRef(node) : null), [node])\n return [weakNode]\n}\n","import type { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { isModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { getModuleFromNodeConfigLogger } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: T extends ModuleInstance ? ModuleFromNodeConfig<T> : ModuleFromNodeConfig | undefined,\n): [(T extends ModuleInstance ? T : ModuleInstance) | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = getModuleFromNodeConfigLogger(config)\n const filterOptions = getModuleFilterOptions(config)\n const [result, setResult] = useState<(T extends ModuleInstance ? T : ModuleInstance) | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(identity(mod) ? (mod as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n node.on('moduleDetached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? (result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useProvidedNode } from './provided/index.ts'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField.ts'\n\nexport const useNode = (config?: ModuleFromNodeConfig | undefined): [NodeInstance | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config)\n const [providedNode] = useProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n if (providedNode && nodeAddress) {\n return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node')\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\n\nexport const useNodeConfigNodeField = (config?: ModuleFromNodeConfig | undefined): [string | undefined, NodeInstance | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import { exists } from '@xylabs/exists'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\n/** @deprecated use useWeakModulesFromNode */\nexport const useModulesFromNode = (ids?: ModuleIdentifier[], config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = getModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n const refreshModules = async () => {\n const moduleInstances = ids\n ? (await Promise.all(ids.map(id => node.resolve(id, filterOptions)))).filter(exists)\n : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n node.on('moduleAttached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n node.on('moduleDetached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n return await refreshModules()\n }\n console.log('Result: No Node')\n }, [node, ids])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescription, ModuleDescriptionPayload } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\nexport const useNodeDescription = (config?: ModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useModuleFromNode } from './useModuleFromNode.ts'\n\n/** @deprecated use useWeakNodeFromNode instead */\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(mod)\n if (mod && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useModulesFromNode } from './useModulesFromNode.ts'\n\n/** @deprecated use useWeakNodesFromNode */\nexport const useNodesFromNode = (ids?: ModuleIdentifier[], config?: ModuleFromNodeConfig): [NodeInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(ids, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<NodeInstance[]>((prev, mod) => {\n if (isNodeInstance(mod)) {\n prev.push(mod)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import type { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { isModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getWeakModuleFilterOptions } from './getWeakModuleFilterOptions.ts'\nimport { useWeakNode } from './useWeakNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\nimport { getWeakModuleFromNodeConfigLogger } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useWeakNode(config)\n const logger = getWeakModuleFromNodeConfigLogger(config)\n const filterOptions = getWeakModuleFilterOptions(config)\n const [result, setResult] = useState<WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n const nodeInstance = node?.deref()\n if (nodeInstance && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(identity(mod) ? new WeakRef(mod as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance as T extends ModuleInstance ? T : ModuleInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? new WeakRef(result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isDefined } from '@xylabs/typeof'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakProvidedNode } from './provided/index.ts'\nimport { useWeakNodeConfigNodeField } from './useWeakNodeConfigNodeField.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNode = (config?: WeakModuleFromNodeConfig | undefined): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config)\n const [providedNode] = useWeakProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n const providedNodeInstance = providedNode?.deref()\n if (providedNodeInstance && isDefined(nodeAddress)) {\n return new WeakRef(asNodeInstance(await providedNodeInstance.resolve(nodeAddress), () => 'Module is not a node', { required: true }))\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeConfigNodeField = (\n config?: WeakModuleFromNodeConfig | undefined,\n): [string | undefined, WeakRef<NodeInstance> | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { ModuleFilterOptions } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const getWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { exists } from '@xylabs/exists'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\nexport const useWeakModulesFromNode = (\n ids?: ModuleIdentifier[],\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = getModuleFilterOptions()\n const [result, setResult] = useState<WeakRef<ModuleInstance>[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance) {\n const refreshModules = async () => {\n const moduleInstances = ids\n ? (await Promise.all(ids.map(id => node.resolve(id, filterOptions)))).filter(exists)\n : await node.resolve('*', filterOptions)\n setResult(moduleInstances.map(mod => new WeakRef(mod)))\n return moduleInstances\n }\n nodeInstance.on('moduleAttached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n nodeInstance.on('moduleDetached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n return await refreshModules()\n }\n console.log('Result: No Node')\n return\n }, [node, ids])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescription, ModuleDescriptionPayload } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { useWeakNode } from './useWeakNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeDescription = (config?: WeakModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useWeakNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.deref()?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakModuleFromNode } from './useWeakModuleFromNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<NodeInstance>(nameOrAddressOrInstance, { identity: isNodeInstance, ...config })\n}\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport React from 'react'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox.tsx'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n variant?: 'description'\n}\n\nexport const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {\n switch (variant) {\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case 'description':\n default: {\n return <NodeDescriptionBox {...props} />\n }\n }\n}\n","import { Close as CloseIcon } from '@mui/icons-material'\nimport type { DrawerProps } from '@mui/material'\nimport {\n ClickAwayListener, Drawer, IconButton,\n} from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { useWeakProvidedNode } from '../hooks/index.ts'\nimport { ModuleDescriptionBox } from './render/index.ts'\n\nexport interface NodeDrawerProps extends PropsWithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useWeakProvidedNode()\n\n return (\n <Drawer open={open ?? false} anchor=\"right\" {...props}>\n <ClickAwayListener onClickAway={() => setOpen?.(false)}>\n <FlexGrowCol role=\"presentation\" justifyContent=\"start\" p={2} rowGap={2} minWidth=\"33vw\">\n <FlexRow alignContent=\"start\" justifyContent=\"start\" width=\"100%\">\n <IconButton onClick={() => setOpen?.(false)}>\n <CloseIcon />\n </IconButton>\n </FlexRow>\n <ModuleDescriptionBox mod={node} />\n {children}\n </FlexGrowCol>\n </ClickAwayListener>\n </Drawer>\n )\n}\n","import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport { styled, Typography } from '@mui/material'\nimport { SimpleTreeView } from '@mui/x-tree-view'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport React, { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule.tsx'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n mod?: WeakRef<ModuleInstance> | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ mod }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {mod\n ? (\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n slots={{ collapseIcon: ExpandMoreIcon, expandIcon: ChevronRightIcon }}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule mod={mod} idRef={idRef} />\n </StyledTreeView>\n </>\n )\n : mod === null\n ? <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(SimpleTreeView, { name: 'StyledTreeView' })(() => ({\n height: 'auto',\n maxWidth: 'auto',\n}))\n","import { styled } from '@mui/material'\nimport { TreeItem } from '@mui/x-tree-view'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport type { MutableRefObject } from 'react'\nimport React, { useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n mod: WeakRef<ModuleInstance>\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ mod, idRef }) => {\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n\n async (mounted) => {\n const moduleInstance = mod.deref()\n const { address } = moduleInstance ?? {}\n if (moduleInstance) {\n const children = (await moduleInstance.resolve('*')).filter(childModule => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map(childModule => new WeakRef(childModule)))\n }\n }\n },\n [mod],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n const moduleInstance = mod.deref()\n const { queries, address } = moduleInstance ?? {}\n\n return (\n <StyledAddressTreeItem itemId={increment()} label={`address: ${address}`}>\n {queries?.map((query, index) => {\n return <TreeItem key={query} itemId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0\n ? (\n <TreeItem itemId={increment()} label=\"children\" sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} mod={childModuleRef} idRef={idRef} /> : null\n })}\n </TreeItem>\n )\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => (\n { '& .MuiTreeItem-content': { marginBottom: theme.spacing(0.25) } }\n))\n","export * from './components/index.ts'\nexport * from './hooks/index.ts'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n"],"mappings":"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","names":["NodeContext","use","usePromise","useMemo","usePromise","result","usePromise","useState","useState","usePromise","usePromise","usePromise","asNodeInstance","asNodeInstance","error","usePromise","isModuleInstance","useState","usePromise","asNodeInstance","useMemo","usePromise","asNodeInstance","useState","usePromise","isModuleInstance","result","exists","usePromise","useState","useState","usePromise","exists","usePromise","ModuleDescriptionSchema","isPayloadOfSchemaType","usePromise","isPayloadOfSchemaType","ModuleDescriptionSchema","isNodeInstance","isNodeInstance","jsx","styled","useState","jsx","moduleInstance","address","jsx","jsxs","styled","jsx","jsxs"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-node",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.1",
|
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xyo",
|
|
@@ -43,45 +43,48 @@
|
|
|
43
43
|
"src"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@mui/x-tree-view": "
|
|
47
|
-
"@xylabs/exists": "
|
|
48
|
-
"@xylabs/logger": "
|
|
49
|
-
"@xylabs/react-async-effect": "
|
|
50
|
-
"@xylabs/react-flexbox": "
|
|
51
|
-
"@xylabs/react-promise": "
|
|
52
|
-
"@xylabs/typeof": "
|
|
53
|
-
"@xyo-network/module-abstract": "
|
|
54
|
-
"@xyo-network/module-model": "
|
|
55
|
-
"@xyo-network/node-model": "
|
|
56
|
-
"@xyo-network/payload-model": "
|
|
57
|
-
"@xyo-network/react-node-context": "^7.0.
|
|
58
|
-
"@xyo-network/react-node-provider": "^7.0.
|
|
46
|
+
"@mui/x-tree-view": "~8.10.0",
|
|
47
|
+
"@xylabs/exists": "~5.0.8",
|
|
48
|
+
"@xylabs/logger": "~5.0.8",
|
|
49
|
+
"@xylabs/react-async-effect": "~7.0.1",
|
|
50
|
+
"@xylabs/react-flexbox": "~7.0.1",
|
|
51
|
+
"@xylabs/react-promise": "~7.0.1",
|
|
52
|
+
"@xylabs/typeof": "~5.0.8",
|
|
53
|
+
"@xyo-network/module-abstract": "~5.0.5",
|
|
54
|
+
"@xyo-network/module-model": "~5.0.5",
|
|
55
|
+
"@xyo-network/node-model": "~5.0.5",
|
|
56
|
+
"@xyo-network/payload-model": "~5.0.5",
|
|
57
|
+
"@xyo-network/react-node-context": "^7.0.1",
|
|
58
|
+
"@xyo-network/react-node-provider": "^7.0.1"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@emotion/react": "
|
|
62
|
-
"@emotion/styled": "
|
|
63
|
-
"@mui/icons-material": "
|
|
64
|
-
"@mui/material": "
|
|
65
|
-
"@mui/system": "
|
|
66
|
-
"@storybook/react-vite": "
|
|
67
|
-
"@types/react": "
|
|
68
|
-
"@xylabs/object": "
|
|
69
|
-
"@xylabs/ts-scripts-yarn3": "
|
|
70
|
-
"@xylabs/tsconfig
|
|
71
|
-
"@
|
|
72
|
-
"@
|
|
73
|
-
"@xyo-network/
|
|
74
|
-
"@xyo-network/
|
|
75
|
-
"react": "^
|
|
76
|
-
"react-
|
|
77
|
-
"
|
|
78
|
-
"
|
|
61
|
+
"@emotion/react": "~11.14.0",
|
|
62
|
+
"@emotion/styled": "~11.14.1",
|
|
63
|
+
"@mui/icons-material": "~7.3.1",
|
|
64
|
+
"@mui/material": "~7.3.1",
|
|
65
|
+
"@mui/system": "~7.3.1",
|
|
66
|
+
"@storybook/react-vite": "~9.1.2",
|
|
67
|
+
"@types/react": "~19.1.10",
|
|
68
|
+
"@xylabs/object": "~5.0.8",
|
|
69
|
+
"@xylabs/ts-scripts-yarn3": "~7.1.1",
|
|
70
|
+
"@xylabs/tsconfig": "~7.1.1",
|
|
71
|
+
"@xylabs/tsconfig-dom": "~7.1.1",
|
|
72
|
+
"@xylabs/tsconfig-react": "~7.1.1",
|
|
73
|
+
"@xyo-network/node-memory": "~5.0.5",
|
|
74
|
+
"@xyo-network/payload-model": "~5.0.5",
|
|
75
|
+
"@xyo-network/react-storybook": "^7.0.1",
|
|
76
|
+
"@xyo-network/react-wallet": "^7.0.1",
|
|
77
|
+
"react": "~19.1.1",
|
|
78
|
+
"react-dom": "~19.1.1",
|
|
79
|
+
"storybook": "~9.1.2",
|
|
80
|
+
"typescript": "~5.9.2",
|
|
81
|
+
"vite": "~7.1.2"
|
|
79
82
|
},
|
|
80
83
|
"peerDependencies": {
|
|
81
84
|
"@mui/icons-material": ">=6 <8",
|
|
82
85
|
"@mui/material": ">=6 <8",
|
|
83
|
-
"react": "
|
|
84
|
-
"react-dom": "
|
|
86
|
+
"react": "~19",
|
|
87
|
+
"react-dom": "~19"
|
|
85
88
|
},
|
|
86
89
|
"publishConfig": {
|
|
87
90
|
"access": "public"
|