@xyo-network/react-node 2.60.6 → 2.60.8

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 (72) hide show
  1. package/dist/cjs/components/Node.js +8 -13
  2. package/dist/cjs/components/Node.js.map +1 -1
  3. package/dist/cjs/components/NodeDescriptionBox.js +14 -0
  4. package/dist/cjs/components/NodeDescriptionBox.js.map +1 -0
  5. package/dist/cjs/components/NodeModulesBox.js +14 -0
  6. package/dist/cjs/components/NodeModulesBox.js.map +1 -0
  7. package/dist/cjs/hooks/index.js +4 -0
  8. package/dist/cjs/hooks/index.js.map +1 -1
  9. package/dist/cjs/hooks/useModuleFilterOptions.js +9 -0
  10. package/dist/cjs/hooks/useModuleFilterOptions.js.map +1 -0
  11. package/dist/cjs/hooks/useModuleFromNode.js +16 -11
  12. package/dist/cjs/hooks/useModuleFromNode.js.map +1 -1
  13. package/dist/cjs/hooks/useModulesFromNode.js +17 -16
  14. package/dist/cjs/hooks/useModulesFromNode.js.map +1 -1
  15. package/dist/cjs/hooks/useNode.js +21 -0
  16. package/dist/cjs/hooks/useNode.js.map +1 -0
  17. package/dist/cjs/hooks/useNodeConfigNodeField.js +11 -0
  18. package/dist/cjs/hooks/useNodeConfigNodeField.js.map +1 -0
  19. package/dist/cjs/hooks/useNodeDescription.js +15 -0
  20. package/dist/cjs/hooks/useNodeDescription.js.map +1 -0
  21. package/dist/docs.json +26150 -2154
  22. package/dist/esm/components/Node.js +7 -13
  23. package/dist/esm/components/Node.js.map +1 -1
  24. package/dist/esm/components/NodeDescriptionBox.js +8 -0
  25. package/dist/esm/components/NodeDescriptionBox.js.map +1 -0
  26. package/dist/esm/components/NodeModulesBox.js +8 -0
  27. package/dist/esm/components/NodeModulesBox.js.map +1 -0
  28. package/dist/esm/hooks/index.js +4 -0
  29. package/dist/esm/hooks/index.js.map +1 -1
  30. package/dist/esm/hooks/useModuleFilterOptions.js +5 -0
  31. package/dist/esm/hooks/useModuleFilterOptions.js.map +1 -0
  32. package/dist/esm/hooks/useModuleFromNode.js +14 -10
  33. package/dist/esm/hooks/useModuleFromNode.js.map +1 -1
  34. package/dist/esm/hooks/useModulesFromNode.js +13 -12
  35. package/dist/esm/hooks/useModulesFromNode.js.map +1 -1
  36. package/dist/esm/hooks/useNode.js +15 -0
  37. package/dist/esm/hooks/useNode.js.map +1 -0
  38. package/dist/esm/hooks/useNodeConfigNodeField.js +7 -0
  39. package/dist/esm/hooks/useNodeConfigNodeField.js.map +1 -0
  40. package/dist/esm/hooks/useNodeDescription.js +10 -0
  41. package/dist/esm/hooks/useNodeDescription.js.map +1 -0
  42. package/dist/types/components/Node.d.ts +6 -1
  43. package/dist/types/components/Node.d.ts.map +1 -1
  44. package/dist/types/components/NodeDescriptionBox.d.ts +8 -0
  45. package/dist/types/components/NodeDescriptionBox.d.ts.map +1 -0
  46. package/dist/types/components/NodeModulesBox.d.ts +8 -0
  47. package/dist/types/components/NodeModulesBox.d.ts.map +1 -0
  48. package/dist/types/hooks/index.d.ts +4 -0
  49. package/dist/types/hooks/index.d.ts.map +1 -1
  50. package/dist/types/hooks/useModuleFilterOptions.d.ts +49 -0
  51. package/dist/types/hooks/useModuleFilterOptions.d.ts.map +1 -0
  52. package/dist/types/hooks/useModuleFromNode.d.ts +2 -1
  53. package/dist/types/hooks/useModuleFromNode.d.ts.map +1 -1
  54. package/dist/types/hooks/useModulesFromNode.d.ts.map +1 -1
  55. package/dist/types/hooks/useNode.d.ts +4 -0
  56. package/dist/types/hooks/useNode.d.ts.map +1 -0
  57. package/dist/types/hooks/useNodeConfigNodeField.d.ts +4 -0
  58. package/dist/types/hooks/useNodeConfigNodeField.d.ts.map +1 -0
  59. package/dist/types/hooks/useNodeDescription.d.ts +4 -0
  60. package/dist/types/hooks/useNodeDescription.d.ts.map +1 -0
  61. package/package.json +20 -20
  62. package/src/components/Node.stories.tsx +5 -30
  63. package/src/components/Node.tsx +13 -20
  64. package/src/components/NodeDescriptionBox.tsx +18 -0
  65. package/src/components/NodeModulesBox.tsx +18 -0
  66. package/src/hooks/index.ts +4 -0
  67. package/src/hooks/useModuleFilterOptions.ts +6 -0
  68. package/src/hooks/useModuleFromNode.ts +16 -11
  69. package/src/hooks/useModulesFromNode.ts +13 -12
  70. package/src/hooks/useNode.ts +17 -0
  71. package/src/hooks/useNodeConfigNodeField.ts +10 -0
  72. package/src/hooks/useNodeDescription.ts +13 -0
@@ -3,19 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeBox = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- const react_async_effect_1 = require("@xylabs/react-async-effect");
7
- const react_flexbox_1 = require("@xylabs/react-flexbox");
8
- const react_1 = require("react");
9
- const hooks_1 = require("../hooks");
10
- const NodeBox = (props) => {
11
- const [node] = (0, hooks_1.useProvidedNode)();
12
- const [description, setDescription] = (0, react_1.useState)();
13
- (0, react_async_effect_1.useAsyncEffect)(
14
- // eslint-disable-next-line react-hooks/exhaustive-deps
15
- () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
16
- setDescription(JSON.stringify(yield (node === null || node === void 0 ? void 0 : node.describe()), null, 2));
17
- }), [node]);
18
- return ((0, jsx_runtime_1.jsx)(react_flexbox_1.FlexCol, Object.assign({}, props, { children: (0, jsx_runtime_1.jsx)("pre", { children: description }) })));
6
+ const NodeDescriptionBox_1 = require("./NodeDescriptionBox");
7
+ const NodeBox = (_a) => {
8
+ var { variant } = _a, props = tslib_1.__rest(_a, ["variant"]);
9
+ switch (variant) {
10
+ case 'description':
11
+ default:
12
+ return (0, jsx_runtime_1.jsx)(NodeDescriptionBox_1.NodeDescriptionBox, Object.assign({}, props));
13
+ }
19
14
  };
20
15
  exports.NodeBox = NodeBox;
21
16
  //# sourceMappingURL=Node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/components/Node.tsx"],"names":[],"mappings":";;;;;AAAA,mEAA2D;AAC3D,yDAA6D;AAC7D,iCAAgC;AAEhC,oCAA0C;AAEnC,MAAM,OAAO,GAA2B,CAAC,KAAK,EAAE,EAAE;IACvD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,uBAAe,GAAE,CAAA;IAChC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,GAAU,CAAA;IAExD,IAAA,mCAAc;IACZ,uDAAuD;IACvD,GAAS,EAAE;QACT,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,CAAA,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACjE,CAAC,CAAA,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CACL,uBAAC,uBAAO,oBAAK,KAAK,cAChB,0CAAM,WAAW,GAAO,IAChB,CACX,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,OAAO,WAiBnB"}
1
+ {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/components/Node.tsx"],"names":[],"mappings":";;;;;AAGA,6DAAyD;AAOlD,MAAM,OAAO,GAA2B,CAAC,EAAqB,EAAE,EAAE;QAAzB,EAAE,OAAO,OAAY,EAAP,KAAK,sBAAnB,WAAqB,CAAF;IACjE,QAAQ,OAAO,EAAE;QACf,KAAK,aAAa,CAAC;QACnB;YACE,OAAO,uBAAC,uCAAkB,oBAAK,KAAK,EAAI,CAAA;KAC3C;AACH,CAAC,CAAA;AANY,QAAA,OAAO,WAMnB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeDescriptionBox = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_flexbox_1 = require("@xylabs/react-flexbox");
7
+ const hooks_1 = require("../hooks");
8
+ const NodeDescriptionBox = (_a) => {
9
+ var { node } = _a, props = tslib_1.__rest(_a, ["node"]);
10
+ const [description, error] = (0, hooks_1.useNodeDescription)({ node });
11
+ return ((0, jsx_runtime_1.jsx)(react_flexbox_1.FlexCol, Object.assign({}, props, { children: (0, jsx_runtime_1.jsx)("code", Object.assign({ color: error ? 'red' : undefined }, { children: error ? error.message : JSON.stringify(description, null, 2) })) })));
12
+ };
13
+ exports.NodeDescriptionBox = NodeDescriptionBox;
14
+ //# sourceMappingURL=NodeDescriptionBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeDescriptionBox.js","sourceRoot":"","sources":["../../../src/components/NodeDescriptionBox.tsx"],"names":[],"mappings":";;;;;AAAA,yDAA6D;AAG7D,oCAA6C;AAMtC,MAAM,kBAAkB,GAAsC,CAAC,EAAkB,EAAE,EAAE;QAAtB,EAAE,IAAI,OAAY,EAAP,KAAK,sBAAhB,QAAkB,CAAF;IACpF,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,IAAA,0BAAkB,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzD,OAAO,CACL,uBAAC,uBAAO,oBAAK,KAAK,cAChB,+CAAM,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,gBAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAQ,IACrG,CACX,CAAA;AACH,CAAC,CAAA;AARY,QAAA,kBAAkB,sBAQ9B"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeDescriptionBox = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_flexbox_1 = require("@xylabs/react-flexbox");
7
+ const hooks_1 = require("../hooks");
8
+ const NodeDescriptionBox = (_a) => {
9
+ var { node } = _a, props = tslib_1.__rest(_a, ["node"]);
10
+ const [description, error] = (0, hooks_1.useModulesFromNode)(undefined, { node });
11
+ return ((0, jsx_runtime_1.jsx)(react_flexbox_1.FlexCol, Object.assign({}, props, { children: (0, jsx_runtime_1.jsx)("code", Object.assign({ color: error ? 'red' : undefined }, { children: error ? error.message : JSON.stringify(description, null, 2) })) })));
12
+ };
13
+ exports.NodeDescriptionBox = NodeDescriptionBox;
14
+ //# sourceMappingURL=NodeModulesBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeModulesBox.js","sourceRoot":"","sources":["../../../src/components/NodeModulesBox.tsx"],"names":[],"mappings":";;;;;AAAA,yDAA6D;AAG7D,oCAA6C;AAMtC,MAAM,kBAAkB,GAAsC,CAAC,EAAkB,EAAE,EAAE;QAAtB,EAAE,IAAI,OAAY,EAAP,KAAK,sBAAhB,QAAkB,CAAF;IACpF,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,IAAA,0BAAkB,EAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpE,OAAO,CACL,uBAAC,uBAAO,oBAAK,KAAK,cAChB,+CAAM,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,gBAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAQ,IACrG,CACX,CAAA;AACH,CAAC,CAAA;AARY,QAAA,kBAAkB,sBAQ9B"}
@@ -2,7 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./provided"), exports);
5
+ tslib_1.__exportStar(require("./useModuleFilterOptions"), exports);
5
6
  tslib_1.__exportStar(require("./useModuleFromNode"), exports);
6
7
  tslib_1.__exportStar(require("./useModulesFromNode"), exports);
8
+ tslib_1.__exportStar(require("./useNode"), exports);
9
+ tslib_1.__exportStar(require("./useNodeConfigNodeField"), exports);
10
+ tslib_1.__exportStar(require("./useNodeDescription"), exports);
7
11
  tslib_1.__exportStar(require("./useNodeFromNode"), exports);
8
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0B;AAC1B,8DAAmC;AACnC,+DAAoC;AACpC,4DAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0B;AAC1B,mEAAwC;AACxC,8DAAmC;AACnC,+DAAoC;AACpC,oDAAyB;AACzB,mEAAwC;AACxC,+DAAoC;AACpC,4DAAiC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useModuleFilterOptions = void 0;
4
+ const useModuleFilterOptions = (config) => {
5
+ const { direction, identity, maxDepth, visibility } = config !== null && config !== void 0 ? config : {};
6
+ return { direction, identity, maxDepth, visibility };
7
+ };
8
+ exports.useModuleFilterOptions = useModuleFilterOptions;
9
+ //# sourceMappingURL=useModuleFilterOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useModuleFilterOptions.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFilterOptions.ts"],"names":[],"mappings":";;;AAEO,MAAM,sBAAsB,GAAG,CAAC,MAA6B,EAAE,EAAE;IACtE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;IAClE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;AACtD,CAAC,CAAA;AAHY,QAAA,sBAAsB,0BAGlC"}
@@ -1,34 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useModuleFromNode = void 0;
3
+ exports.useModuleFromNode = exports.useModuleFromNodeConfigLogger = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_promise_1 = require("@xylabs/react-promise");
6
6
  const module_1 = require("@xyo-network/module");
7
7
  const react_1 = require("react");
8
- const provided_1 = require("./provided");
8
+ const useModuleFilterOptions_1 = require("./useModuleFilterOptions");
9
+ const useNode_1 = require("./useNode");
10
+ const useModuleFromNodeConfigLogger = (config) => {
11
+ return config === null || config === void 0 ? void 0 : config.logger;
12
+ };
13
+ exports.useModuleFromNodeConfigLogger = useModuleFromNodeConfigLogger;
9
14
  const useModuleFromNode = (nameOrAddress, config) => {
10
- const [providedNode] = (0, provided_1.useProvidedNode)();
11
- const _a = config !== null && config !== void 0 ? config : {}, { logger, node: paramNode } = _a, resolveConfig = tslib_1.__rest(_a, ["logger", "node"]);
15
+ const [node, nodeError] = (0, useNode_1.useNode)(config);
16
+ const logger = (0, exports.useModuleFromNodeConfigLogger)(config);
17
+ const filterOptions = (0, useModuleFilterOptions_1.useModuleFilterOptions)(config);
12
18
  const [result, setResult] = (0, react_1.useState)();
13
19
  const [, error] = (0, react_promise_1.usePromise)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
14
20
  logger === null || logger === void 0 ? void 0 : logger.debug('useModuleFromNode: resolving');
15
- const activeNode = paramNode !== null && paramNode !== void 0 ? paramNode : providedNode;
16
- if (activeNode && nameOrAddress) {
17
- activeNode.on('moduleAttached', ({ module }) => {
21
+ if (node && nameOrAddress) {
22
+ node.on('moduleAttached', ({ module }) => {
18
23
  var _a, _b;
19
24
  logger === null || logger === void 0 ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${(_a = module.config.name) !== null && _a !== void 0 ? _a : module.address}]`);
20
25
  if (module.address === nameOrAddress || ((_b = module.config) === null || _b === void 0 ? void 0 : _b.name) === nameOrAddress) {
21
26
  setResult((0, module_1.asModuleInstance)(module));
22
27
  }
23
28
  });
24
- activeNode.on('moduleDetached', ({ module }) => {
29
+ node.on('moduleDetached', ({ module }) => {
25
30
  var _a, _b;
26
31
  logger === null || logger === void 0 ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${(_a = module.config.name) !== null && _a !== void 0 ? _a : module.address}]`);
27
32
  if (module.address === nameOrAddress || ((_b = module.config) === null || _b === void 0 ? void 0 : _b.name) === nameOrAddress) {
28
33
  setResult(undefined);
29
34
  }
30
35
  });
31
- const result = yield activeNode.resolve(nameOrAddress, resolveConfig);
36
+ const result = yield node.resolve(nameOrAddress, filterOptions);
32
37
  logger === null || logger === void 0 ? void 0 : logger.debug(`Result: ${result === null || result === void 0 ? void 0 : result.address}`);
33
38
  setResult(result);
34
39
  return result;
@@ -36,8 +41,8 @@ const useModuleFromNode = (nameOrAddress, config) => {
36
41
  logger === null || logger === void 0 ? void 0 : logger.debug('Result: No Node');
37
42
  return undefined;
38
43
  // eslint-disable-next-line react-hooks/exhaustive-deps
39
- }), [paramNode, providedNode, nameOrAddress]);
40
- return [result, error];
44
+ }), [node, nameOrAddress]);
45
+ return [result, nodeError !== null && nodeError !== void 0 ? nodeError : error];
41
46
  };
42
47
  exports.useModuleFromNode = useModuleFromNode;
43
48
  //# sourceMappingURL=useModuleFromNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":";;;;AAAA,yDAAkD;AAElD,gDAAsD;AAGtD,iCAAgC;AAEhC,yCAA4C;AAOrC,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAE,MAA6B,EAAmD,EAAE;IAC1I,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,0BAAe,GAAE,CAAA;IACxC,MAAM,KAAgD,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EAA5D,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAmC,EAA9B,aAAa,sBAA3C,kBAA6C,CAAe,CAAA;IAClE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,GAA8B,CAAA;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAA,0BAAU,EAAC,GAAS,EAAE;QACtC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,YAAY,CAAA;QAC5C,IAAI,UAAU,IAAI,aAAa,EAAE;YAC/B,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;gBAC7C,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sCAAsC,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC,CAAA;iBACpC;YACH,CAAC,CAAC,CAAA;YACF,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;gBAC7C,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sCAAsC,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;YACH,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;YACrE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,WAAW,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE,CAAC,CAAA;YAC3C,SAAS,CAAC,MAAM,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;SACd;QACD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAChC,OAAO,SAAS,CAAA;QAChB,uDAAuD;IACzD,CAAC,CAAA,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA;AA9BY,QAAA,iBAAiB,qBA8B7B"}
1
+ {"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":";;;;AAAA,yDAAkD;AAElD,gDAAsD;AAGtD,iCAAgC;AAEhC,qEAAiE;AACjE,uCAAmC;AAO5B,MAAM,6BAA6B,GAAG,CAAC,MAA6B,EAAE,EAAE;IAC7E,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA;AACvB,CAAC,CAAA;AAFY,QAAA,6BAA6B,iCAEzC;AAEM,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAE,MAA6B,EAAmD,EAAE;IAC1I,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,IAAA,qCAA6B,EAAC,MAAM,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,IAAA,+CAAsB,EAAC,MAAM,CAAC,CAAA;IACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,GAA8B,CAAA;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAA,0BAAU,EAAC,GAAS,EAAE;QACtC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,IAAI,IAAI,IAAI,aAAa,EAAE;YACzB,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;gBACvC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sCAAsC,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC,CAAA;iBACpC;YACH,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;gBACvC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sCAAsC,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;YACH,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;YAC/D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,WAAW,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE,CAAC,CAAA;YAC3C,SAAS,CAAC,MAAM,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;SACd;QACD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAChC,OAAO,SAAS,CAAA;QAChB,uDAAuD;IACzD,CAAC,CAAA,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;IACzB,OAAO,CAAC,MAAM,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,CAAC,CAAA;AACrC,CAAC,CAAA;AA9BY,QAAA,iBAAiB,qBA8B7B"}
@@ -4,36 +4,37 @@ exports.useModulesFromNode = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_promise_1 = require("@xylabs/react-promise");
6
6
  const react_1 = require("react");
7
- const provided_1 = require("./provided");
7
+ const useModuleFilterOptions_1 = require("./useModuleFilterOptions");
8
+ const useNode_1 = require("./useNode");
8
9
  const useModulesFromNode = (filter, config) => {
9
- const [providedNode] = (0, provided_1.useProvidedNode)();
10
- const _a = config !== null && config !== void 0 ? config : {}, { logger, node: paramNode } = _a, resolveConfig = tslib_1.__rest(_a, ["logger", "node"]);
10
+ const [node, nodeError] = (0, useNode_1.useNode)(config);
11
+ const logger = config === null || config === void 0 ? void 0 : config.logger;
12
+ const filterOptions = (0, useModuleFilterOptions_1.useModuleFilterOptions)();
11
13
  const [result, setResult] = (0, react_1.useState)();
12
14
  const [, error] = (0, react_promise_1.usePromise)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
13
15
  logger === null || logger === void 0 ? void 0 : logger.debug('useModuleFromNode: resolving');
14
- const activeNode = paramNode !== null && paramNode !== void 0 ? paramNode : providedNode;
15
- if (activeNode) {
16
- activeNode.on('moduleAttached', ({ module }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
17
- var _b;
18
- logger === null || logger === void 0 ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${(_b = module.config.name) !== null && _b !== void 0 ? _b : module.address}]`);
19
- const moduleInstances = yield activeNode.resolve(filter, resolveConfig);
16
+ if (node) {
17
+ node.on('moduleAttached', ({ module }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
18
+ var _a;
19
+ logger === null || logger === void 0 ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${(_a = module.config.name) !== null && _a !== void 0 ? _a : module.address}]`);
20
+ const moduleInstances = yield node.resolve(filter, filterOptions);
20
21
  setResult(moduleInstances);
21
22
  }));
22
- activeNode.on('moduleDetached', ({ module }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
23
- var _c;
24
- logger === null || logger === void 0 ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${(_c = module.config.name) !== null && _c !== void 0 ? _c : module.address}]`);
25
- const moduleInstances = yield activeNode.resolve(filter, resolveConfig);
23
+ node.on('moduleDetached', ({ module }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
24
+ var _b;
25
+ logger === null || logger === void 0 ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${(_b = module.config.name) !== null && _b !== void 0 ? _b : module.address}]`);
26
+ const moduleInstances = yield node.resolve(filter, filterOptions);
26
27
  setResult(moduleInstances);
27
28
  }));
28
- const moduleInstances = yield activeNode.resolve(filter, resolveConfig);
29
+ const moduleInstances = yield node.resolve(filter, filterOptions);
29
30
  setResult(moduleInstances);
30
31
  setResult(moduleInstances);
31
32
  return moduleInstances;
32
33
  }
33
34
  console.log('Result: No Node');
34
35
  return undefined;
35
- }), [paramNode, providedNode, filter]);
36
- return [result, error];
36
+ }), [node, filter]);
37
+ return [result, nodeError !== null && nodeError !== void 0 ? nodeError : error];
37
38
  };
38
39
  exports.useModulesFromNode = useModulesFromNode;
39
40
  //# sourceMappingURL=useModulesFromNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":";;;;AAAA,yDAAkD;AAGlD,iCAAgC;AAEhC,yCAA4C;AAGrC,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAE,MAA6B,EAAqD,EAAE;IAC5I,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,0BAAe,GAAE,CAAA;IACxC,MAAM,KAAgD,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EAA5D,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAmC,EAA9B,aAAa,sBAA3C,kBAA6C,CAAe,CAAA;IAClE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,GAAgC,CAAA;IACpE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAA,0BAAU,EAAC,GAAS,EAAE;QACtC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,YAAY,CAAA;QAC5C,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAO,EAAE,MAAM,EAAE,EAAE,EAAE;;gBACnD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sCAAsC,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAA,CAAC,CAAA;YACF,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAO,EAAE,MAAM,EAAE,EAAE,EAAE;;gBACnD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sCAAsC,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAA,CAAC,CAAA;YACF,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,OAAO,eAAe,CAAA;SACvB;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IACrC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA;AA3BY,QAAA,kBAAkB,sBA2B9B"}
1
+ {"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":";;;;AAAA,yDAAkD;AAGlD,iCAAgC;AAEhC,qEAAiE;AAEjE,uCAAmC;AAE5B,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAE,MAA6B,EAAqD,EAAE;IAC5I,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA;IAC7B,MAAM,aAAa,GAAG,IAAA,+CAAsB,GAAE,CAAA;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,GAAgC,CAAA;IACpE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAA,0BAAU,EAAC,GAAS,EAAE;QACtC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAO,EAAE,MAAM,EAAE,EAAE,EAAE;;gBAC7C,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sCAAsC,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACjE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAA,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAO,EAAE,MAAM,EAAE,EAAE,EAAE;;gBAC7C,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sCAAsC,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACjE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAA,CAAC,CAAA;YACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACjE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,OAAO,eAAe,CAAA;SACvB;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAClB,OAAO,CAAC,MAAM,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,CAAC,CAAA;AACrC,CAAC,CAAA;AA3BY,QAAA,kBAAkB,sBA2B9B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNode = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_promise_1 = require("@xylabs/react-promise");
6
+ const node_model_1 = require("@xyo-network/node-model");
7
+ const provided_1 = require("./provided");
8
+ const useNodeConfigNodeField_1 = require("./useNodeConfigNodeField");
9
+ const useNode = (config) => {
10
+ var _a, _b;
11
+ const [nodeAddress, nodeInstance] = (0, useNodeConfigNodeField_1.useNodeConfigNodeField)(config);
12
+ const [providedNode] = (0, provided_1.useProvidedNode)();
13
+ const [nodeAddressNode, error] = (0, react_promise_1.usePromise)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
14
+ if (providedNode && nodeAddress) {
15
+ return (0, node_model_1.asNodeInstance)(yield providedNode.resolve(nodeAddress), 'Module is not a node');
16
+ }
17
+ }), [providedNode, nodeAddress]);
18
+ return [(_b = (_a = nodeAddressNode !== null && nodeAddressNode !== void 0 ? nodeAddressNode : nodeInstance) !== null && _a !== void 0 ? _a : providedNode) !== null && _b !== void 0 ? _b : undefined, error];
19
+ };
20
+ exports.useNode = useNode;
21
+ //# sourceMappingURL=useNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.ts"],"names":[],"mappings":";;;;AAAA,yDAAkD;AAClD,wDAAsE;AAEtE,yCAA4C;AAE5C,qEAAiE;AAE1D,MAAM,OAAO,GAAG,CAAC,MAAyC,EAAiD,EAAE;;IAClH,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,IAAA,+CAAsB,EAAC,MAAM,CAAC,CAAA;IAClE,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,0BAAe,GAAE,CAAA;IACxC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,IAAA,0BAAU,EAAC,GAAS,EAAE;QACrD,IAAI,YAAY,IAAI,WAAW,EAAE;YAC/B,OAAO,IAAA,2BAAc,EAAC,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC,CAAA;SACvF;IACH,CAAC,CAAA,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;IAC/B,OAAO,CAAC,MAAA,MAAA,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,YAAY,mCAAI,YAAY,mCAAI,SAAS,EAAE,KAAK,CAAC,CAAA;AAC9E,CAAC,CAAA;AATY,QAAA,OAAO,WASnB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNodeConfigNodeField = void 0;
4
+ const react_1 = require("react");
5
+ const useNodeConfigNodeField = (config) => {
6
+ const nodeAddress = (0, react_1.useMemo)(() => (typeof (config === null || config === void 0 ? void 0 : config.node) === 'string' ? config === null || config === void 0 ? void 0 : config.node : undefined), [config === null || config === void 0 ? void 0 : config.node]);
7
+ const nodeInstance = (0, react_1.useMemo)(() => (typeof (config === null || config === void 0 ? void 0 : config.node) === 'object' ? config === null || config === void 0 ? void 0 : config.node : undefined), [config === null || config === void 0 ? void 0 : config.node]);
8
+ return [nodeAddress, nodeInstance];
9
+ };
10
+ exports.useNodeConfigNodeField = useNodeConfigNodeField;
11
+ //# sourceMappingURL=useNodeConfigNodeField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeConfigNodeField.js","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":";;;AACA,iCAA+B;AAIxB,MAAM,sBAAsB,GAAG,CAAC,MAAyC,EAAkD,EAAE;IAClI,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,CAAA;IAChH,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,CAAA;IACjH,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;AACpC,CAAC,CAAA;AAJY,QAAA,sBAAsB,0BAIlC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNodeDescription = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_promise_1 = require("@xylabs/react-promise");
6
+ const useNode_1 = require("./useNode");
7
+ const useNodeDescription = (config) => {
8
+ const [activeNode, nodeError] = (0, useNode_1.useNode)(config);
9
+ const [description, error] = (0, react_promise_1.usePromise)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
10
+ return yield (activeNode === null || activeNode === void 0 ? void 0 : activeNode.describe());
11
+ }), [activeNode]);
12
+ return [description, nodeError !== null && nodeError !== void 0 ? nodeError : error];
13
+ };
14
+ exports.useNodeDescription = useNodeDescription;
15
+ //# sourceMappingURL=useNodeDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeDescription.js","sourceRoot":"","sources":["../../../src/hooks/useNodeDescription.ts"],"names":[],"mappings":";;;;AAAA,yDAAkD;AAIlD,uCAAmC;AAE5B,MAAM,kBAAkB,GAAG,CAAC,MAAyC,EAAsD,EAAE;IAClI,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,IAAA,0BAAU,EAAC,GAAS,EAAE;QACjD,OAAO,MAAM,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAA,CAAA;IACrC,CAAC,CAAA,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,WAAW,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,CAAC,CAAA;AAC1C,CAAC,CAAA;AANY,QAAA,kBAAkB,sBAM9B"}