@xyo-network/react-node 2.74.0 → 2.75.0

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 (121) hide show
  1. package/dist/browser/components/render/RenderModule.d.cts.map +1 -1
  2. package/dist/browser/components/render/RenderModule.d.mts.map +1 -1
  3. package/dist/browser/components/render/RenderModule.d.ts.map +1 -1
  4. package/dist/browser/hooks/WeakModuleFromNodeConfig.d.cts +9 -0
  5. package/dist/browser/hooks/WeakModuleFromNodeConfig.d.cts.map +1 -0
  6. package/dist/browser/hooks/WeakModuleFromNodeConfig.d.mts +9 -0
  7. package/dist/browser/hooks/WeakModuleFromNodeConfig.d.mts.map +1 -0
  8. package/dist/browser/hooks/WeakModuleFromNodeConfig.d.ts +9 -0
  9. package/dist/browser/hooks/WeakModuleFromNodeConfig.d.ts.map +1 -0
  10. package/dist/browser/hooks/index.d.cts +4 -0
  11. package/dist/browser/hooks/index.d.cts.map +1 -1
  12. package/dist/browser/hooks/index.d.mts +4 -0
  13. package/dist/browser/hooks/index.d.mts.map +1 -1
  14. package/dist/browser/hooks/index.d.ts +4 -0
  15. package/dist/browser/hooks/index.d.ts.map +1 -1
  16. package/dist/browser/hooks/useModuleFilterOptions.d.cts.map +1 -1
  17. package/dist/browser/hooks/useModuleFilterOptions.d.mts.map +1 -1
  18. package/dist/browser/hooks/useModuleFilterOptions.d.ts.map +1 -1
  19. package/dist/browser/hooks/useModuleFromNode.d.cts +1 -0
  20. package/dist/browser/hooks/useModuleFromNode.d.cts.map +1 -1
  21. package/dist/browser/hooks/useModuleFromNode.d.mts +1 -0
  22. package/dist/browser/hooks/useModuleFromNode.d.mts.map +1 -1
  23. package/dist/browser/hooks/useModuleFromNode.d.ts +1 -0
  24. package/dist/browser/hooks/useModuleFromNode.d.ts.map +1 -1
  25. package/dist/browser/hooks/useModulesFromNode.d.cts +1 -0
  26. package/dist/browser/hooks/useModulesFromNode.d.cts.map +1 -1
  27. package/dist/browser/hooks/useModulesFromNode.d.mts +1 -0
  28. package/dist/browser/hooks/useModulesFromNode.d.mts.map +1 -1
  29. package/dist/browser/hooks/useModulesFromNode.d.ts +1 -0
  30. package/dist/browser/hooks/useModulesFromNode.d.ts.map +1 -1
  31. package/dist/browser/hooks/useNodeConfigNodeField.d.cts.map +1 -1
  32. package/dist/browser/hooks/useNodeConfigNodeField.d.mts.map +1 -1
  33. package/dist/browser/hooks/useNodeConfigNodeField.d.ts.map +1 -1
  34. package/dist/browser/hooks/useWeakModuleFromNode.d.cts +4 -0
  35. package/dist/browser/hooks/useWeakModuleFromNode.d.cts.map +1 -0
  36. package/dist/browser/hooks/useWeakModuleFromNode.d.mts +4 -0
  37. package/dist/browser/hooks/useWeakModuleFromNode.d.mts.map +1 -0
  38. package/dist/browser/hooks/useWeakModuleFromNode.d.ts +4 -0
  39. package/dist/browser/hooks/useWeakModuleFromNode.d.ts.map +1 -0
  40. package/dist/browser/hooks/useWeakModulesFromNode.d.cts +4 -0
  41. package/dist/browser/hooks/useWeakModulesFromNode.d.cts.map +1 -0
  42. package/dist/browser/hooks/useWeakModulesFromNode.d.mts +4 -0
  43. package/dist/browser/hooks/useWeakModulesFromNode.d.mts.map +1 -0
  44. package/dist/browser/hooks/useWeakModulesFromNode.d.ts +4 -0
  45. package/dist/browser/hooks/useWeakModulesFromNode.d.ts.map +1 -0
  46. package/dist/browser/hooks/useWeakNodeConfigNodeField.d.cts +4 -0
  47. package/dist/browser/hooks/useWeakNodeConfigNodeField.d.cts.map +1 -0
  48. package/dist/browser/hooks/useWeakNodeConfigNodeField.d.mts +4 -0
  49. package/dist/browser/hooks/useWeakNodeConfigNodeField.d.mts.map +1 -0
  50. package/dist/browser/hooks/useWeakNodeConfigNodeField.d.ts +4 -0
  51. package/dist/browser/hooks/useWeakNodeConfigNodeField.d.ts.map +1 -0
  52. package/dist/browser/index.cjs +102 -8
  53. package/dist/browser/index.cjs.map +1 -1
  54. package/dist/browser/index.js +100 -6
  55. package/dist/browser/index.js.map +1 -1
  56. package/dist/node/components/render/RenderModule.d.cts.map +1 -1
  57. package/dist/node/components/render/RenderModule.d.mts.map +1 -1
  58. package/dist/node/components/render/RenderModule.d.ts.map +1 -1
  59. package/dist/node/hooks/WeakModuleFromNodeConfig.d.cts +9 -0
  60. package/dist/node/hooks/WeakModuleFromNodeConfig.d.cts.map +1 -0
  61. package/dist/node/hooks/WeakModuleFromNodeConfig.d.mts +9 -0
  62. package/dist/node/hooks/WeakModuleFromNodeConfig.d.mts.map +1 -0
  63. package/dist/node/hooks/WeakModuleFromNodeConfig.d.ts +9 -0
  64. package/dist/node/hooks/WeakModuleFromNodeConfig.d.ts.map +1 -0
  65. package/dist/node/hooks/index.d.cts +4 -0
  66. package/dist/node/hooks/index.d.cts.map +1 -1
  67. package/dist/node/hooks/index.d.mts +4 -0
  68. package/dist/node/hooks/index.d.mts.map +1 -1
  69. package/dist/node/hooks/index.d.ts +4 -0
  70. package/dist/node/hooks/index.d.ts.map +1 -1
  71. package/dist/node/hooks/useModuleFilterOptions.d.cts.map +1 -1
  72. package/dist/node/hooks/useModuleFilterOptions.d.mts.map +1 -1
  73. package/dist/node/hooks/useModuleFilterOptions.d.ts.map +1 -1
  74. package/dist/node/hooks/useModuleFromNode.d.cts +1 -0
  75. package/dist/node/hooks/useModuleFromNode.d.cts.map +1 -1
  76. package/dist/node/hooks/useModuleFromNode.d.mts +1 -0
  77. package/dist/node/hooks/useModuleFromNode.d.mts.map +1 -1
  78. package/dist/node/hooks/useModuleFromNode.d.ts +1 -0
  79. package/dist/node/hooks/useModuleFromNode.d.ts.map +1 -1
  80. package/dist/node/hooks/useModulesFromNode.d.cts +1 -0
  81. package/dist/node/hooks/useModulesFromNode.d.cts.map +1 -1
  82. package/dist/node/hooks/useModulesFromNode.d.mts +1 -0
  83. package/dist/node/hooks/useModulesFromNode.d.mts.map +1 -1
  84. package/dist/node/hooks/useModulesFromNode.d.ts +1 -0
  85. package/dist/node/hooks/useModulesFromNode.d.ts.map +1 -1
  86. package/dist/node/hooks/useNodeConfigNodeField.d.cts.map +1 -1
  87. package/dist/node/hooks/useNodeConfigNodeField.d.mts.map +1 -1
  88. package/dist/node/hooks/useNodeConfigNodeField.d.ts.map +1 -1
  89. package/dist/node/hooks/useWeakModuleFromNode.d.cts +4 -0
  90. package/dist/node/hooks/useWeakModuleFromNode.d.cts.map +1 -0
  91. package/dist/node/hooks/useWeakModuleFromNode.d.mts +4 -0
  92. package/dist/node/hooks/useWeakModuleFromNode.d.mts.map +1 -0
  93. package/dist/node/hooks/useWeakModuleFromNode.d.ts +4 -0
  94. package/dist/node/hooks/useWeakModuleFromNode.d.ts.map +1 -0
  95. package/dist/node/hooks/useWeakModulesFromNode.d.cts +4 -0
  96. package/dist/node/hooks/useWeakModulesFromNode.d.cts.map +1 -0
  97. package/dist/node/hooks/useWeakModulesFromNode.d.mts +4 -0
  98. package/dist/node/hooks/useWeakModulesFromNode.d.mts.map +1 -0
  99. package/dist/node/hooks/useWeakModulesFromNode.d.ts +4 -0
  100. package/dist/node/hooks/useWeakModulesFromNode.d.ts.map +1 -0
  101. package/dist/node/hooks/useWeakNodeConfigNodeField.d.cts +4 -0
  102. package/dist/node/hooks/useWeakNodeConfigNodeField.d.cts.map +1 -0
  103. package/dist/node/hooks/useWeakNodeConfigNodeField.d.mts +4 -0
  104. package/dist/node/hooks/useWeakNodeConfigNodeField.d.mts.map +1 -0
  105. package/dist/node/hooks/useWeakNodeConfigNodeField.d.ts +4 -0
  106. package/dist/node/hooks/useWeakNodeConfigNodeField.d.ts.map +1 -0
  107. package/dist/node/index.cjs +108 -8
  108. package/dist/node/index.cjs.map +1 -1
  109. package/dist/node/index.js +102 -6
  110. package/dist/node/index.js.map +1 -1
  111. package/package.json +13 -13
  112. package/src/components/render/RenderModule.tsx +6 -5
  113. package/src/hooks/WeakModuleFromNodeConfig.ts +12 -0
  114. package/src/hooks/index.ts +4 -0
  115. package/src/hooks/useModuleFilterOptions.ts +2 -0
  116. package/src/hooks/useModuleFromNode.ts +3 -0
  117. package/src/hooks/useModulesFromNode.ts +3 -1
  118. package/src/hooks/useNodeConfigNodeField.ts +2 -0
  119. package/src/hooks/useWeakModuleFromNode.ts +48 -0
  120. package/src/hooks/useWeakModulesFromNode.ts +41 -0
  121. package/src/hooks/useWeakNodeConfigNodeField.ts +12 -0
@@ -1,4 +1,5 @@
1
1
  import { ModuleFilter, ModuleInstance } from '@xyo-network/module-model';
2
2
  import { ModuleFromNodeConfig } from './ModuleFromNodeConfig';
3
+ /** @deprecated use useModulesFromNode */
3
4
  export declare const useModulesFromNode: (filter?: ModuleFilter, config?: ModuleFromNodeConfig) => [ModuleInstance[] | undefined, Error | undefined];
4
5
  //# sourceMappingURL=useModulesFromNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,eAAO,MAAM,kBAAkB,YAAa,YAAY,WAAW,oBAAoB,KAAG,CAAC,cAAc,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2BzI,CAAA"}
1
+ {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,YAAa,YAAY,WAAW,oBAAoB,KAAG,CAAC,cAAc,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA0BzI,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { ModuleFilter, ModuleInstance } from '@xyo-network/module-model';
2
2
  import { ModuleFromNodeConfig } from './ModuleFromNodeConfig';
3
+ /** @deprecated use useModulesFromNode */
3
4
  export declare const useModulesFromNode: (filter?: ModuleFilter, config?: ModuleFromNodeConfig) => [ModuleInstance[] | undefined, Error | undefined];
4
5
  //# sourceMappingURL=useModulesFromNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,eAAO,MAAM,kBAAkB,YAAa,YAAY,WAAW,oBAAoB,KAAG,CAAC,cAAc,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2BzI,CAAA"}
1
+ {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,YAAa,YAAY,WAAW,oBAAoB,KAAG,CAAC,cAAc,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA0BzI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,eAAO,MAAM,sBAAsB,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,GAAG,SAAS,CAI/H,CAAA"}
1
+ {"version":3,"file":"useNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,eAAO,MAAM,sBAAsB,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,GAAG,SAAS,CAI/H,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,eAAO,MAAM,sBAAsB,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,GAAG,SAAS,CAI/H,CAAA"}
1
+ {"version":3,"file":"useNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,eAAO,MAAM,sBAAsB,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,GAAG,SAAS,CAI/H,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,eAAO,MAAM,sBAAsB,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,GAAG,SAAS,CAI/H,CAAA"}
1
+ {"version":3,"file":"useNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeConfigNodeField.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,eAAO,MAAM,sBAAsB,YAAa,oBAAoB,GAAG,SAAS,KAAG,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,GAAG,SAAS,CAI/H,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ModuleInstance } from '@xyo-network/module-model';
2
+ import { ModuleFromNodeConfig } from './ModuleFromNodeConfig';
3
+ export declare const useWeakModuleFromNode: (nameOrAddressOrInstance?: string | ModuleInstance, config?: ModuleFromNodeConfig) => [WeakRef<ModuleInstance> | undefined, Error | undefined];
4
+ //# sourceMappingURL=useWeakModuleFromNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakModuleFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG9F,OAAO,EAAE,oBAAoB,EAAiC,MAAM,wBAAwB,CAAA;AAI5F,eAAO,MAAM,qBAAqB,6BACN,MAAM,GAAG,cAAc,WACxC,oBAAoB,KAC5B,CAAC,QAAQ,cAAc,CAAC,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAoCzD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ModuleInstance } from '@xyo-network/module-model';
2
+ import { ModuleFromNodeConfig } from './ModuleFromNodeConfig';
3
+ export declare const useWeakModuleFromNode: (nameOrAddressOrInstance?: string | ModuleInstance, config?: ModuleFromNodeConfig) => [WeakRef<ModuleInstance> | undefined, Error | undefined];
4
+ //# sourceMappingURL=useWeakModuleFromNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakModuleFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG9F,OAAO,EAAE,oBAAoB,EAAiC,MAAM,wBAAwB,CAAA;AAI5F,eAAO,MAAM,qBAAqB,6BACN,MAAM,GAAG,cAAc,WACxC,oBAAoB,KAC5B,CAAC,QAAQ,cAAc,CAAC,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAoCzD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ModuleInstance } from '@xyo-network/module-model';
2
+ import { ModuleFromNodeConfig } from './ModuleFromNodeConfig';
3
+ export declare const useWeakModuleFromNode: (nameOrAddressOrInstance?: string | ModuleInstance, config?: ModuleFromNodeConfig) => [WeakRef<ModuleInstance> | undefined, Error | undefined];
4
+ //# sourceMappingURL=useWeakModuleFromNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakModuleFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG9F,OAAO,EAAE,oBAAoB,EAAiC,MAAM,wBAAwB,CAAA;AAI5F,eAAO,MAAM,qBAAqB,6BACN,MAAM,GAAG,cAAc,WACxC,oBAAoB,KAC5B,CAAC,QAAQ,cAAc,CAAC,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAoCzD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ModuleFilter, ModuleInstance } from '@xyo-network/module-model';
2
+ import { ModuleFromNodeConfig } from './ModuleFromNodeConfig';
3
+ export declare const useWeakModulesFromNode: (filter?: ModuleFilter, config?: ModuleFromNodeConfig) => [WeakRef<ModuleInstance>[] | undefined, Error | undefined];
4
+ //# sourceMappingURL=useWeakModulesFromNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,eAAO,MAAM,sBAAsB,YACxB,YAAY,WACZ,oBAAoB,KAC5B,CAAC,QAAQ,cAAc,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA6B3D,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ModuleFilter, ModuleInstance } from '@xyo-network/module-model';
2
+ import { ModuleFromNodeConfig } from './ModuleFromNodeConfig';
3
+ export declare const useWeakModulesFromNode: (filter?: ModuleFilter, config?: ModuleFromNodeConfig) => [WeakRef<ModuleInstance>[] | undefined, Error | undefined];
4
+ //# sourceMappingURL=useWeakModulesFromNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,eAAO,MAAM,sBAAsB,YACxB,YAAY,WACZ,oBAAoB,KAC5B,CAAC,QAAQ,cAAc,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA6B3D,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ModuleFilter, ModuleInstance } from '@xyo-network/module-model';
2
+ import { ModuleFromNodeConfig } from './ModuleFromNodeConfig';
3
+ export declare const useWeakModulesFromNode: (filter?: ModuleFilter, config?: ModuleFromNodeConfig) => [WeakRef<ModuleInstance>[] | undefined, Error | undefined];
4
+ //# sourceMappingURL=useWeakModulesFromNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAI7D,eAAO,MAAM,sBAAsB,YACxB,YAAY,WACZ,oBAAoB,KAC5B,CAAC,QAAQ,cAAc,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA6B3D,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NodeInstance } from '@xyo-network/node-model';
2
+ import { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig';
3
+ export declare const useWeakNodeConfigNodeField: (config?: WeakModuleFromNodeConfig | undefined) => [string | undefined, WeakRef<NodeInstance> | undefined];
4
+ //# sourceMappingURL=useWeakNodeConfigNodeField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakNodeConfigNodeField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,eAAO,MAAM,0BAA0B,YAC5B,wBAAwB,GAAG,SAAS,KAC5C,CAAC,MAAM,GAAG,SAAS,EAAE,QAAQ,YAAY,CAAC,GAAG,SAAS,CAIxD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NodeInstance } from '@xyo-network/node-model';
2
+ import { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig';
3
+ export declare const useWeakNodeConfigNodeField: (config?: WeakModuleFromNodeConfig | undefined) => [string | undefined, WeakRef<NodeInstance> | undefined];
4
+ //# sourceMappingURL=useWeakNodeConfigNodeField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakNodeConfigNodeField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,eAAO,MAAM,0BAA0B,YAC5B,wBAAwB,GAAG,SAAS,KAC5C,CAAC,MAAM,GAAG,SAAS,EAAE,QAAQ,YAAY,CAAC,GAAG,SAAS,CAIxD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NodeInstance } from '@xyo-network/node-model';
2
+ import { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig';
3
+ export declare const useWeakNodeConfigNodeField: (config?: WeakModuleFromNodeConfig | undefined) => [string | undefined, WeakRef<NodeInstance> | undefined];
4
+ //# sourceMappingURL=useWeakNodeConfigNodeField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWeakNodeConfigNodeField.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakNodeConfigNodeField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,eAAO,MAAM,0BAA0B,YAC5B,wBAAwB,GAAG,SAAS,KAC5C,CAAC,MAAM,GAAG,SAAS,EAAE,QAAQ,YAAY,CAAC,GAAG,SAAS,CAIxD,CAAA"}
@@ -31,7 +31,11 @@ __export(src_exports, {
31
31
  useNodeConfigNodeField: () => useNodeConfigNodeField,
32
32
  useNodeDescription: () => useNodeDescription,
33
33
  useNodeFromNode: () => useNodeFromNode,
34
- useProvidedNode: () => useProvidedNode
34
+ useProvidedNode: () => useProvidedNode,
35
+ useWeakModuleFromNode: () => useWeakModuleFromNode,
36
+ useWeakModuleFromNodeConfigLogger: () => useWeakModuleFromNodeConfigLogger,
37
+ useWeakModulesFromNode: () => useWeakModulesFromNode,
38
+ useWeakNodeConfigNodeField: () => useWeakNodeConfigNodeField
35
39
  });
36
40
  module.exports = __toCommonJS(src_exports);
37
41
 
@@ -147,7 +151,6 @@ var useModulesFromNode = (filter, config) => {
147
151
  });
148
152
  const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve("*", filterOptions);
149
153
  setResult(moduleInstances);
150
- setResult(moduleInstances);
151
154
  return moduleInstances;
152
155
  }
153
156
  console.log("Result: No Node");
@@ -183,6 +186,96 @@ var useNodeFromNode = (nameOrAddressOrInstance, config) => {
183
186
  return [instance, error];
184
187
  };
185
188
 
189
+ // src/hooks/useWeakModuleFromNode.ts
190
+ var import_react_promise5 = require("@xylabs/react-promise");
191
+ var import_module_model3 = require("@xyo-network/module-model");
192
+ var import_react5 = require("react");
193
+ var useWeakModuleFromNode = (nameOrAddressOrInstance, config) => {
194
+ const [node, nodeError] = useNode(config);
195
+ const logger = useModuleFromNodeConfigLogger(config);
196
+ const filterOptions = useModuleFilterOptions(config);
197
+ const [result, setResult] = (0, import_react5.useState)();
198
+ const [, error] = (0, import_react_promise5.usePromise)(async () => {
199
+ logger == null ? void 0 : logger.debug("useModuleFromNode: resolving");
200
+ const nodeInstance = node;
201
+ if (nodeInstance && nameOrAddressOrInstance) {
202
+ nodeInstance.on("moduleAttached", ({ module: module2 }) => {
203
+ var _a;
204
+ logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${module2.config.name ?? module2.address}]`);
205
+ if (module2.address === nameOrAddressOrInstance || ((_a = module2.config) == null ? void 0 : _a.name) === nameOrAddressOrInstance) {
206
+ const instance = (0, import_module_model3.asModuleInstance)(module2);
207
+ setResult(instance ? new WeakRef(instance) : void 0);
208
+ }
209
+ });
210
+ nodeInstance.on("moduleDetached", ({ module: module2 }) => {
211
+ var _a;
212
+ logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${module2.config.name ?? module2.address}]`);
213
+ if (module2.address === nameOrAddressOrInstance || ((_a = module2.config) == null ? void 0 : _a.name) === nameOrAddressOrInstance) {
214
+ setResult(void 0);
215
+ }
216
+ });
217
+ if ((0, import_module_model3.isModuleInstance)(nameOrAddressOrInstance)) {
218
+ setResult(new WeakRef(nameOrAddressOrInstance));
219
+ } else {
220
+ const result2 = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions);
221
+ logger == null ? void 0 : logger.debug(`Result: ${result2 == null ? void 0 : result2.address}`);
222
+ setResult(result2 ? new WeakRef(result2) : void 0);
223
+ }
224
+ return result;
225
+ }
226
+ logger == null ? void 0 : logger.debug("Result: No Node");
227
+ return;
228
+ }, [node, nameOrAddressOrInstance]);
229
+ return [result, nodeError ?? error];
230
+ };
231
+
232
+ // src/hooks/useWeakModulesFromNode.ts
233
+ var import_react_promise6 = require("@xylabs/react-promise");
234
+ var import_react6 = require("react");
235
+ var useWeakModulesFromNode = (filter, config) => {
236
+ const [node, nodeError] = useNode(config);
237
+ const logger = config == null ? void 0 : config.logger;
238
+ const filterOptions = useModuleFilterOptions();
239
+ const [result, setResult] = (0, import_react6.useState)();
240
+ const [, error] = (0, import_react_promise6.usePromise)(async () => {
241
+ logger == null ? void 0 : logger.debug("useModuleFromNode: resolving");
242
+ const nodeInstance = node;
243
+ if (nodeInstance) {
244
+ nodeInstance.on("moduleAttached", async ({ module: module2 }) => {
245
+ const nodeInstance2 = node;
246
+ logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${module2.config.name ?? module2.address}]`);
247
+ const moduleInstances2 = filter ? await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve(filter, filterOptions)) : await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve("*", filterOptions));
248
+ setResult(moduleInstances2 == null ? void 0 : moduleInstances2.map((module3) => new WeakRef(module3)));
249
+ });
250
+ nodeInstance.on("moduleDetached", async ({ module: module2 }) => {
251
+ const nodeInstance2 = node;
252
+ logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${module2.config.name ?? module2.address}]`);
253
+ const moduleInstances2 = filter ? await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve(filter, filterOptions)) : await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve("*", filterOptions));
254
+ setResult(moduleInstances2 == null ? void 0 : moduleInstances2.map((module3) => new WeakRef(module3)));
255
+ });
256
+ const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve("*", filterOptions);
257
+ setResult(moduleInstances == null ? void 0 : moduleInstances.map((module2) => new WeakRef(module2)));
258
+ return moduleInstances;
259
+ }
260
+ console.log("Result: No Node");
261
+ return;
262
+ }, [node, filter]);
263
+ return [result, nodeError ?? error];
264
+ };
265
+
266
+ // src/hooks/useWeakNodeConfigNodeField.ts
267
+ var import_react7 = require("react");
268
+ var useWeakNodeConfigNodeField = (config) => {
269
+ const nodeAddress = (0, import_react7.useMemo)(() => typeof (config == null ? void 0 : config.node) === "string" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
270
+ const nodeInstance = (0, import_react7.useMemo)(() => typeof (config == null ? void 0 : config.node) === "object" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
271
+ return [nodeAddress, nodeInstance];
272
+ };
273
+
274
+ // src/hooks/WeakModuleFromNodeConfig.ts
275
+ var useWeakModuleFromNodeConfigLogger = (config) => {
276
+ return config == null ? void 0 : config.logger;
277
+ };
278
+
186
279
  // src/components/NodeDescriptionBox.tsx
187
280
  var import_jsx_runtime = require("react/jsx-runtime");
188
281
  var NodeDescriptionBox = ({ node, ...props }) => {
@@ -211,23 +304,23 @@ var import_react_node_provider = require("@xyo-network/react-node-provider");
211
304
  var import_icons_material = require("@mui/icons-material");
212
305
  var import_material2 = require("@mui/material");
213
306
  var import_x_tree_view2 = require("@mui/x-tree-view");
214
- var import_react6 = require("react");
307
+ var import_react9 = require("react");
215
308
 
216
309
  // src/components/render/RenderModule.tsx
217
310
  var import_material = require("@mui/material");
218
311
  var import_x_tree_view = require("@mui/x-tree-view");
219
312
  var import_react_async_effect = require("@xylabs/react-async-effect");
220
- var import_react5 = require("react");
313
+ var import_react8 = require("react");
221
314
  var import_jsx_runtime3 = require("react/jsx-runtime");
222
315
  var RenderModule = ({ module: module2, idRef }) => {
223
316
  const { address, queries } = module2 ?? {};
224
- const [childModules, setChildModules] = (0, import_react5.useState)();
317
+ const [childModules, setChildModules] = (0, import_react8.useState)();
225
318
  (0, import_react_async_effect.useAsyncEffect)(
226
319
  // eslint-disable-next-line react-hooks/exhaustive-deps
227
320
  async (mounted) => {
228
321
  const children = (await module2.resolve("*")).filter((childModule) => childModule.address !== address);
229
322
  if (mounted()) {
230
- setChildModules(children);
323
+ setChildModules(children.map((childModule) => new WeakRef(childModule)));
231
324
  }
232
325
  },
233
326
  [module2, address]
@@ -241,7 +334,10 @@ var RenderModule = ({ module: module2, idRef }) => {
241
334
  queries.map((query, index) => {
242
335
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_x_tree_view.TreeItem, { nodeId: increment(), label: `query : ${query}`, sx: { mb: index === queries.length - 1 ? 1.5 : 0.5 } }, query);
243
336
  }),
244
- childModules && childModules.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_x_tree_view.TreeItem, { nodeId: increment(), label: "children", sx: { mb: 0.5 }, children: childModules.map((childModule) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(RenderModule, { module: childModule, idRef }, childModule.address)) }) : null
337
+ childModules && childModules.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_x_tree_view.TreeItem, { nodeId: increment(), label: "children", sx: { mb: 0.5 }, children: childModules.map((childModuleRef) => {
338
+ const childModule = childModuleRef.deref();
339
+ return childModule ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(RenderModule, { module: childModule, idRef }, childModule == null ? void 0 : childModule.address) : null;
340
+ }) }) : null
245
341
  ] });
246
342
  };
247
343
  var StyledAddressTreeItem = (0, import_material.styled)(import_x_tree_view.TreeItem, { name: "StyledAddressTreeItem" })(({ theme }) => ({
@@ -253,7 +349,7 @@ var StyledAddressTreeItem = (0, import_material.styled)(import_x_tree_view.TreeI
253
349
  // src/components/render/ModuleDescriptionBox.tsx
254
350
  var import_jsx_runtime4 = require("react/jsx-runtime");
255
351
  var ModuleDescriptionBox = ({ module: module2 }) => {
256
- const idRef = (0, import_react6.useRef)({ idIncrementor: 0, ids: [] });
352
+ const idRef = (0, import_react9.useRef)({ idIncrementor: 0, ids: [] });
257
353
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: module2 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
258
354
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_material2.Typography, { variant: "h4", children: "Node Configuration" }),
259
355
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
@@ -301,6 +397,10 @@ __reExport(src_exports, require("@xyo-network/react-node-provider"), module.expo
301
397
  useNodeDescription,
302
398
  useNodeFromNode,
303
399
  useProvidedNode,
400
+ useWeakModuleFromNode,
401
+ useWeakModuleFromNodeConfigLogger,
402
+ useWeakModulesFromNode,
403
+ useWeakNodeConfigNodeField,
304
404
  ...require("@xyo-network/react-node-context"),
305
405
  ...require("@xyo-network/react-node-provider")
306
406
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/components/NodeDescriptionBox.tsx","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/useModuleFilterOptions.ts","../../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/components/Node.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { useNodeDescription } from '../hooks'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | NodeInstance\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useNodeDescription({ 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 { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const useModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { useContext } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = useContext(NodeContext)\n return [node]\n}\n","import { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const { direction, identity, maxDepth } = config ?? {}\n return { direction, identity, maxDepth }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asModuleInstance, isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useModuleFromNode = (\n nameOrAddressOrInstance?: string | ModuleInstance,\n config?: ModuleFromNodeConfig,\n): [ModuleInstance | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<ModuleInstance | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(asModuleInstance(module))\n }\n })\n node.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (isModuleInstance(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(result)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useProvidedNode } from './provided'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField'\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 { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\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 { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useModulesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n node.on('moduleAttached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n node.on('moduleDetached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n setResult(moduleInstances)\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useNode } from './useNode'\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 { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFromNode } from './useModuleFromNode'\n\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(module)\n if (module && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | 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 { ClickAwayListener, Drawer, DrawerProps, IconButton } from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\n\nimport { useProvidedNode } from '../hooks'\nimport { ModuleDescriptionBox } from './render'\n\nexport interface NodeDrawerProps extends WithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useProvidedNode()\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 module={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 { TreeView } from '@mui/x-tree-view'\nimport { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n module?: ModuleInstance | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ module }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {module ?\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n defaultCollapseIcon={<ExpandMoreIcon />}\n defaultExpandIcon={<ChevronRightIcon />}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule module={module} idRef={idRef} />\n </StyledTreeView>\n </>\n : module === null ?\n <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(TreeView, { 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 { ModuleInstance } from '@xyo-network/module-model'\nimport { MutableRefObject, useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n module: ModuleInstance\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ module, idRef }) => {\n const { address, queries } = module ?? {}\n const [childModules, setChildModules] = useState<ModuleInstance[]>()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const children = (await module.resolve('*')).filter((childModule) => childModule.address !== address)\n if (mounted()) {\n setChildModules(children)\n }\n },\n [module, address],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n return (\n <StyledAddressTreeItem nodeId={increment()} label={`address: ${address}`}>\n {queries.map((query, index) => {\n return <TreeItem key={query} nodeId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0 ?\n <TreeItem nodeId={increment()} label={'children'} sx={{ mb: 0.5 }}>\n {childModules.map((childModule) => (\n <RenderModule key={childModule.address} module={childModule} idRef={idRef} />\n ))}\n </TreeItem>\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => ({\n '& .MuiTreeItem-content': {\n marginBottom: theme.spacing(0.25),\n },\n}))\n"],"mappings":"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","names":["import_react_promise","import_react","import_react","module","result","import_react_promise","import_react","module","moduleInstances","import_react_promise","import_module_model","import_node_model","module","error","import_jsx_runtime","import_icons_material","import_material","import_react_flexbox","import_material","import_x_tree_view","import_react","import_react","import_jsx_runtime","module","import_jsx_runtime","module","ExpandMoreIcon","ChevronRightIcon","import_jsx_runtime","CloseIcon"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/components/NodeDescriptionBox.tsx","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/useModuleFilterOptions.ts","../../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/useWeakModuleFromNode.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/components/Node.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { useNodeDescription } from '../hooks'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | NodeInstance\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useNodeDescription({ 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 { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const useModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { useContext } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = useContext(NodeContext)\n return [node]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const { direction, identity, maxDepth } = config ?? {}\n return { direction, identity, maxDepth }\n}\n","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { usePromise } from '@xylabs/react-promise'\nimport { asModuleInstance, isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = (\n nameOrAddressOrInstance?: string | ModuleInstance,\n config?: ModuleFromNodeConfig,\n): [ModuleInstance | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<ModuleInstance | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(asModuleInstance(module))\n }\n })\n node.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (isModuleInstance(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(result)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useProvidedNode } from './provided'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField'\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","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\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","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useModulesFromNode */\nexport const useModulesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n node.on('moduleAttached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n node.on('moduleDetached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useNode } from './useNode'\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 { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFromNode } from './useModuleFromNode'\n\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(module)\n if (module && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asModuleInstance, isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModuleFromNode = (\n nameOrAddressOrInstance?: string | ModuleInstance,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\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 && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n const instance = asModuleInstance(module)\n setResult(instance ? new WeakRef(instance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (isModuleInstance(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(result ? new WeakRef(result) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModulesFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\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 nodeInstance.on('moduleAttached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n nodeInstance.on('moduleDetached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\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 { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const useWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | 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 { ClickAwayListener, Drawer, DrawerProps, IconButton } from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\n\nimport { useProvidedNode } from '../hooks'\nimport { ModuleDescriptionBox } from './render'\n\nexport interface NodeDrawerProps extends WithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useProvidedNode()\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 module={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 { TreeView } from '@mui/x-tree-view'\nimport { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n module?: ModuleInstance | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ module }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {module ?\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n defaultCollapseIcon={<ExpandMoreIcon />}\n defaultExpandIcon={<ChevronRightIcon />}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule module={module} idRef={idRef} />\n </StyledTreeView>\n </>\n : module === null ?\n <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(TreeView, { 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 { ModuleInstance } from '@xyo-network/module-model'\nimport { MutableRefObject, useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n module: ModuleInstance\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ module, idRef }) => {\n const { address, queries } = module ?? {}\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const children = (await module.resolve('*')).filter((childModule) => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map((childModule) => new WeakRef(childModule)))\n }\n },\n [module, address],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n return (\n <StyledAddressTreeItem nodeId={increment()} label={`address: ${address}`}>\n {queries.map((query, index) => {\n return <TreeItem key={query} nodeId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0 ?\n <TreeItem nodeId={increment()} label={'children'} sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} module={childModule} idRef={idRef} /> : null\n })}\n </TreeItem>\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => ({\n '& .MuiTreeItem-content': {\n marginBottom: theme.spacing(0.25),\n },\n}))\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,2BAAsC;;;ACS/B,IAAM,gCAAgC,CAAC,WAAkC;AAC9E,SAAO,iCAAQ;AACjB;;;ACVA,gCAA4B;AAC5B,mBAA2B;AAEpB,IAAM,kBAAkB,MAAyC;AACtE,QAAM,EAAE,KAAK,QAAI,yBAAW,qCAAW;AACvC,SAAO,CAAC,IAAI;AACd;;;ACHO,IAAM,yBAAyB,CAAC,WAAkC;AACvE,QAAM,EAAE,WAAW,UAAU,SAAS,IAAI,UAAU,CAAC;AACrD,SAAO,EAAE,WAAW,UAAU,SAAS;AACzC;;;ACLA,IAAAA,wBAA2B;AAC3B,0BAAmE;AACnE,IAAAC,gBAAyB;;;ACJzB,2BAA2B;AAC3B,wBAA6C;;;ACE7C,IAAAC,gBAAwB;AAIjB,IAAM,yBAAyB,CAAC,WAA8F;AACnI,QAAM,kBAAc,uBAAQ,MAAO,QAAO,iCAAQ,UAAS,WAAW,iCAAQ,OAAO,QAAY,CAAC,iCAAQ,IAAI,CAAC;AAC/G,QAAM,mBAAe,uBAAQ,MAAO,QAAO,iCAAQ,UAAS,WAAW,iCAAQ,OAAO,QAAY,CAAC,iCAAQ,IAAI,CAAC;AAChH,SAAO,CAAC,aAAa,YAAY;AACnC;;;ADJO,IAAM,UAAU,CAAC,WAA6F;AACnH,QAAM,CAAC,aAAa,YAAY,IAAI,uBAAuB,MAAM;AACjE,QAAM,CAAC,YAAY,IAAI,gBAAgB;AACvC,QAAM,CAAC,iBAAiB,KAAK,QAAI,iCAAW,YAAY;AACtD,QAAI,gBAAgB,aAAa;AAC/B,iBAAO,kCAAe,MAAM,aAAa,QAAQ,WAAW,GAAG,sBAAsB;AAAA,IACvF;AAAA,EACF,GAAG,CAAC,cAAc,WAAW,CAAC;AAC9B,SAAO,CAAC,mBAAmB,gBAAgB,gBAAgB,QAAW,KAAK;AAC7E;;;ADLO,IAAM,oBAAoB,CAC/B,yBACA,WACoD;AACpD,QAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,MAAM;AACxC,QAAM,SAAS,8BAA8B,MAAM;AACnD,QAAM,gBAAgB,uBAAuB,MAAM;AACnD,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAAqC;AACjE,QAAM,CAAC,EAAE,KAAK,QAAI,kCAAW,YAAY;AACvC,qCAAQ,MAAM;AACd,QAAI,QAAQ,yBAAyB;AACnC,WAAK,GAAG,kBAAkB,CAAC,EAAE,QAAAC,QAAO,MAAM;AAtBhD;AAuBQ,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,YAAIA,QAAO,YAAY,6BAA2B,KAAAA,QAAO,WAAP,mBAAe,UAAS,yBAAyB;AACjG,wBAAU,sCAAiBA,OAAM,CAAC;AAAA,QACpC;AAAA,MACF,CAAC;AACD,WAAK,GAAG,kBAAkB,CAAC,EAAE,QAAAA,QAAO,MAAM;AA5BhD;AA6BQ,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,YAAIA,QAAO,YAAY,6BAA2B,KAAAA,QAAO,WAAP,mBAAe,UAAS,yBAAyB;AACjG,oBAAU,MAAS;AAAA,QACrB;AAAA,MACF,CAAC;AACD,cAAI,sCAAiB,uBAAuB,GAAG;AAC7C,kBAAU,uBAAuB;AAAA,MACnC,OAAO;AACL,cAAMC,UAAS,MAAM,KAAK,QAAQ,yBAAyB,aAAa;AACxE,yCAAQ,MAAM,WAAWA,WAAA,gBAAAA,QAAQ,OAAO;AACxC,kBAAUA,OAAM;AAAA,MAClB;AACA,aAAO;AAAA,IACT;AACA,qCAAQ,MAAM;AACd;AAAA,EAEF,GAAG,CAAC,MAAM,uBAAuB,CAAC;AAClC,SAAO,CAAC,QAAQ,aAAa,KAAK;AACpC;;;AG9CA,IAAAC,wBAA2B;AAE3B,IAAAC,gBAAyB;AAOlB,IAAM,qBAAqB,CAAC,QAAuB,WAAqF;AAC7I,QAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,MAAM;AACxC,QAAM,SAAS,iCAAQ;AACvB,QAAM,gBAAgB,uBAAuB;AAC7C,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAAuC;AACnE,QAAM,CAAC,EAAE,KAAK,QAAI,kCAAW,YAAY;AACvC,qCAAQ,MAAM;AACd,QAAI,MAAM;AACR,WAAK,GAAG,kBAAkB,OAAO,EAAE,QAAAC,QAAO,MAAM;AAC9C,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,cAAMC,mBAAkB,SAAS,MAAM,KAAK,QAAQ,QAAQ,aAAa,IAAI,MAAM,KAAK,QAAQ,KAAK,aAAa;AAClH,kBAAUA,gBAAe;AAAA,MAC3B,CAAC;AACD,WAAK,GAAG,kBAAkB,OAAO,EAAE,QAAAD,QAAO,MAAM;AAC9C,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,cAAMC,mBAAkB,SAAS,MAAM,KAAK,QAAQ,QAAQ,aAAa,IAAI,MAAM,KAAK,QAAQ,KAAK,aAAa;AAClH,kBAAUA,gBAAe;AAAA,MAC3B,CAAC;AACD,YAAM,kBAAkB,SAAS,MAAM,KAAK,QAAQ,QAAQ,aAAa,IAAI,MAAM,KAAK,QAAQ,KAAK,aAAa;AAClH,gBAAU,eAAe;AACzB,aAAO;AAAA,IACT;AACA,YAAQ,IAAI,iBAAiB;AAC7B;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AACjB,SAAO,CAAC,QAAQ,aAAa,KAAK;AACpC;;;ACrCA,IAAAC,wBAA2B;AAC3B,IAAAC,uBAAqF;AACrF,2BAAsC;AAK/B,IAAM,qBAAqB,CAAC,WAAkG;AACnI,QAAM,CAAC,YAAY,SAAS,IAAI,QAAQ,MAAM;AAC9C,QAAM,CAAC,aAAa,KAAK,QAAI,kCAAW,YAAY;AAClD,UAAM,QAAQ,OAAM,yCAAY;AAChC,WAAO,+BAAO,SAA+B,4CAAsB,4CAAuB;AAAA,EAC5F,GAAG,CAAC,UAAU,CAAC;AACf,SAAO,CAAC,aAAa,aAAa,KAAK;AACzC;;;ACdA,IAAAC,qBAA6C;AAKtC,IAAM,kBAAkB,CAC7B,yBACA,WACkD;AARpD;AASE,QAAM,CAACC,SAAQ,KAAK,IAAI,kBAAkB,yBAAyB,MAAM;AACzE,QAAM,eAAW,mCAAeA,OAAM;AACtC,MAAIA,WAAU,CAAC,UAAU;AACvB,UAAMC,SAAQ,IAAI,MAAM,2CAA0C,KAAAD,QAAO,WAAP,mBAAe,MAAM,KAAI,KAAAA,QAAO,WAAP,mBAAe,IAAI,IAAIA,QAAO,OAAO,GAAG;AACnI,YAAQ,MAAMC,OAAM,OAAO;AAC3B,WAAO,CAAC,QAAWA,MAAK;AAAA,EAC1B;AACA,SAAO,CAAC,UAAU,KAAK;AACzB;;;ACjBA,IAAAC,wBAA2B;AAC3B,IAAAC,uBAAmE;AACnE,IAAAC,gBAAyB;AAMlB,IAAM,wBAAwB,CACnC,yBACA,WAC6D;AAC7D,QAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,MAAM;AACxC,QAAM,SAAS,8BAA8B,MAAM;AACnD,QAAM,gBAAgB,uBAAuB,MAAM;AACnD,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAA8C;AAC1E,QAAM,CAAC,EAAE,KAAK,QAAI,kCAAW,YAAY;AACvC,qCAAQ,MAAM;AACd,UAAM,eAAe;AACrB,QAAI,gBAAgB,yBAAyB;AAC3C,mBAAa,GAAG,kBAAkB,CAAC,EAAE,QAAAC,QAAO,MAAM;AApBxD;AAqBQ,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,YAAIA,QAAO,YAAY,6BAA2B,KAAAA,QAAO,WAAP,mBAAe,UAAS,yBAAyB;AACjG,gBAAM,eAAW,uCAAiBA,OAAM;AACxC,oBAAU,WAAW,IAAI,QAAQ,QAAQ,IAAI,MAAS;AAAA,QACxD;AAAA,MACF,CAAC;AACD,mBAAa,GAAG,kBAAkB,CAAC,EAAE,QAAAA,QAAO,MAAM;AA3BxD;AA4BQ,yCAAQ,MAAM,sCAAsCA,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,YAAIA,QAAO,YAAY,6BAA2B,KAAAA,QAAO,WAAP,mBAAe,UAAS,yBAAyB;AACjG,oBAAU,MAAS;AAAA,QACrB;AAAA,MACF,CAAC;AACD,cAAI,uCAAiB,uBAAuB,GAAG;AAC7C,kBAAU,IAAI,QAAQ,uBAAuB,CAAC;AAAA,MAChD,OAAO;AACL,cAAMC,UAAS,MAAM,aAAa,QAAQ,yBAAyB,aAAa;AAChF,yCAAQ,MAAM,WAAWA,WAAA,gBAAAA,QAAQ,OAAO;AACxC,kBAAUA,UAAS,IAAI,QAAQA,OAAM,IAAI,MAAS;AAAA,MACpD;AACA,aAAO;AAAA,IACT;AACA,qCAAQ,MAAM;AACd;AAAA,EAEF,GAAG,CAAC,MAAM,uBAAuB,CAAC;AAClC,SAAO,CAAC,QAAQ,aAAa,KAAK;AACpC;;;AC/CA,IAAAC,wBAA2B;AAE3B,IAAAC,gBAAyB;AAMlB,IAAM,yBAAyB,CACpC,QACA,WAC+D;AAC/D,QAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,MAAM;AACxC,QAAM,SAAS,iCAAQ;AACvB,QAAM,gBAAgB,uBAAuB;AAC7C,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAAgD;AAC5E,QAAM,CAAC,EAAE,KAAK,QAAI,kCAAW,YAAY;AACvC,qCAAQ,MAAM;AACd,UAAM,eAAe;AACrB,QAAI,cAAc;AAChB,mBAAa,GAAG,kBAAkB,OAAO,EAAE,QAAAC,QAAO,MAAM;AACtD,cAAMC,gBAAe;AACrB,yCAAQ,MAAM,sCAAsCD,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,cAAME,mBAAkB,SAAS,OAAMD,iBAAA,gBAAAA,cAAc,QAAQ,QAAQ,kBAAiB,OAAMA,iBAAA,gBAAAA,cAAc,QAAQ,KAAK;AACvH,kBAAUC,oBAAA,gBAAAA,iBAAiB,IAAI,CAACF,YAAW,IAAI,QAAQA,OAAM,EAAE;AAAA,MACjE,CAAC;AACD,mBAAa,GAAG,kBAAkB,OAAO,EAAE,QAAAA,QAAO,MAAM;AACtD,cAAMC,gBAAe;AACrB,yCAAQ,MAAM,sCAAsCD,QAAO,OAAO,QAAQA,QAAO,OAAO;AACxF,cAAME,mBAAkB,SAAS,OAAMD,iBAAA,gBAAAA,cAAc,QAAQ,QAAQ,kBAAiB,OAAMA,iBAAA,gBAAAA,cAAc,QAAQ,KAAK;AACvH,kBAAUC,oBAAA,gBAAAA,iBAAiB,IAAI,CAACF,YAAW,IAAI,QAAQA,OAAM,EAAE;AAAA,MACjE,CAAC;AACD,YAAM,kBAAkB,SAAS,MAAM,aAAa,QAAQ,QAAQ,aAAa,IAAI,MAAM,aAAa,QAAQ,KAAK,aAAa;AAClI,gBAAU,mDAAiB,IAAI,CAACA,YAAW,IAAI,QAAQA,OAAM,EAAE;AAC/D,aAAO;AAAA,IACT;AACA,YAAQ,IAAI,iBAAiB;AAC7B;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AACjB,SAAO,CAAC,QAAQ,aAAa,KAAK;AACpC;;;ACvCA,IAAAG,gBAAwB;AAIjB,IAAM,6BAA6B,CACxC,WAC4D;AAC5D,QAAM,kBAAc,uBAAQ,MAAO,QAAO,iCAAQ,UAAS,WAAW,iCAAQ,OAAO,QAAY,CAAC,iCAAQ,IAAI,CAAC;AAC/G,QAAM,mBAAe,uBAAQ,MAAO,QAAO,iCAAQ,UAAS,WAAW,iCAAQ,OAAO,QAAY,CAAC,iCAAQ,IAAI,CAAC;AAChH,SAAO,CAAC,aAAa,YAAY;AACnC;;;ACFO,IAAM,oCAAoC,CAAC,WAAsC;AACtF,SAAO,iCAAQ;AACjB;;;AbGM;AALC,IAAM,qBAAwD,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM;AAC3F,QAAM,CAAC,aAAa,KAAK,IAAI,mBAAmB,EAAE,KAAK,CAAC;AAExD,SACE,4CAAC,gCAAS,GAAG,OACX,sDAAC,UAAK,OAAO,QAAQ,QAAQ,QAAY,kBAAQ,MAAM,UAAU,KAAK,UAAU,aAAa,MAAM,CAAC,GAAE,GACxG;AAEJ;;;AcFa,IAAAC,sBAAA;AALN,IAAM,UAAkC,CAAC,EAAE,SAAS,GAAG,MAAM,MAAM;AACxE,UAAQ,SAAS;AAAA,IAEf,KAAK;AAAA,IACL,SAAS;AACP,aAAO,6CAAC,sBAAoB,GAAG,OAAO;AAAA,IACxC;AAAA,EACF;AACF;;;AClBA,IAAAC,yBAAmC;AACnC,IAAAC,mBAAmE;AACnE,IAAAC,wBAAqC;AAErC,iCAA8B;;;ACJ9B,4BAA+E;AAC/E,IAAAC,mBAAmC;AACnC,IAAAC,sBAAyB;AAGzB,IAAAC,gBAAuB;;;ACLvB,sBAAuB;AACvB,yBAAyB;AACzB,gCAA+B;AAE/B,IAAAC,gBAA2C;AAgCvC,IAAAC,sBAAA;AAtBG,IAAM,eAA4C,CAAC,EAAE,QAAAC,SAAQ,MAAM,MAAM;AAC9E,QAAM,EAAE,SAAS,QAAQ,IAAIA,WAAU,CAAC;AACxC,QAAM,CAAC,cAAc,eAAe,QAAI,wBAAoC;AAE5E;AAAA;AAAA,IAEE,OAAO,YAAY;AACjB,YAAM,YAAY,MAAMA,QAAO,QAAQ,GAAG,GAAG,OAAO,CAAC,gBAAgB,YAAY,YAAY,OAAO;AACpG,UAAI,QAAQ,GAAG;AACb,wBAAgB,SAAS,IAAI,CAAC,gBAAgB,IAAI,QAAQ,WAAW,CAAC,CAAC;AAAA,MACzE;AAAA,IACF;AAAA,IACA,CAACA,SAAQ,OAAO;AAAA,EAClB;AAEA,QAAM,YAAY,MAAM;AACtB,UAAM,SAAS,MAAM,QAAQ,iBAAiB,SAAS;AACvD,UAAM,QAAQ,IAAI,KAAK,KAAK;AAC5B,WAAO;AAAA,EACT;AAEA,SACE,8CAAC,yBAAsB,QAAQ,UAAU,GAAG,OAAO,YAAY,OAAO,IACnE;AAAA,YAAQ,IAAI,CAAC,OAAO,UAAU;AAC7B,aAAO,6CAAC,+BAAqB,QAAQ,UAAU,GAAG,OAAO,WAAW,KAAK,IAAI,IAAI,EAAE,IAAI,UAAU,QAAQ,SAAS,IAAI,MAAM,IAAI,KAA1G,KAA6G;AAAA,IACrI,CAAC;AAAA,IACA,gBAAgB,aAAa,SAAS,IACrC,6CAAC,+BAAS,QAAQ,UAAU,GAAG,OAAO,YAAY,IAAI,EAAE,IAAI,IAAI,GAC7D,uBAAa,IAAI,CAAC,mBAAmB;AACpC,YAAM,cAAc,eAAe,MAAM;AACzC,aAAO,cAAc,6CAAC,gBAAwC,QAAQ,aAAa,SAA3C,2CAAa,OAA4C,IAAK;AAAA,IACxG,CAAC,GACH,IACA;AAAA,KACJ;AAEJ;AAEA,IAAM,4BAAwB,wBAAO,6BAAU,EAAE,MAAM,wBAAwB,CAAC,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EAChG,0BAA0B;AAAA,IACxB,cAAc,MAAM,QAAQ,IAAI;AAAA,EAClC;AACF,EAAE;;;ADtCM,IAAAC,sBAAA;AAND,IAAM,uBAAyD,CAAC,EAAE,QAAAC,QAAO,MAAM;AACpF,QAAM,YAAQ,sBAAiD,EAAE,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC;AAE5F,SACE,6EACG,UAAAA,UACC,8EACE;AAAA,iDAAC,+BAAW,SAAQ,MAAK,gCAAkB;AAAA,IAC3C;AAAA,MAAC;AAAA;AAAA,QACC,cAAW;AAAA,QACX,qBAAqB,6CAAC,sBAAAC,YAAA,EAAe;AAAA,QACrC,mBAAmB,6CAAC,sBAAAC,cAAA,EAAiB;AAAA,QACrC,IAAI,EAAE,UAAU,EAAE;AAAA,QAElB,uDAAC,gBAAa,QAAQF,SAAQ,OAAc;AAAA;AAAA,IAC9C;AAAA,KACF,IACAA,YAAW,OACX,6CAAC,+BAAW,SAAQ,MAAK,6BAAe,IACxC,6CAAC,+BAAW,SAAQ,MAAK,4BAAc,GAC3C;AAEJ;AAEA,IAAM,qBAAiB,yBAAO,8BAAU,EAAE,MAAM,iBAAiB,CAAC,EAAE,OAAO;AAAA,EACzE,QAAQ;AAAA,EACR,UAAU;AACZ,EAAE;;;ADrBM,IAAAG,sBAAA;AAPD,IAAM,aAAwC,CAAC,EAAE,UAAU,GAAG,MAAM,MAAM;AAC/E,QAAM,EAAE,MAAM,QAAQ,QAAI,0CAAc;AACxC,QAAM,CAAC,IAAI,IAAI,gBAAgB;AAE/B,SACE,6CAAC,2BAAO,MAAM,QAAQ,OAAO,QAAO,SAAS,GAAG,OAC9C,uDAAC,sCAAkB,aAAa,MAAM,mCAAU,QAC9C,wDAAC,qCAAY,MAAK,gBAAe,gBAAe,SAAQ,GAAG,GAAG,QAAQ,GAAG,UAAS,QAChF;AAAA,iDAAC,iCAAQ,cAAa,SAAQ,gBAAe,SAAQ,OAAM,QACzD,uDAAC,+BAAW,SAAS,MAAM,mCAAU,QACnC,uDAAC,uBAAAC,OAAA,EAAU,GACb,GACF;AAAA,IACA,6CAAC,wBAAqB,QAAQ,MAAM;AAAA,IACnC;AAAA,KACH,GACF,GACF;AAEJ;;;AhB5BA,wBAAc,4CAFd;AAGA,wBAAc,6CAHd;","names":["import_react_promise","import_react","import_react","module","result","import_react_promise","import_react","module","moduleInstances","import_react_promise","import_module_model","import_node_model","module","error","import_react_promise","import_module_model","import_react","module","result","import_react_promise","import_react","module","nodeInstance","moduleInstances","import_react","import_jsx_runtime","import_icons_material","import_material","import_react_flexbox","import_material","import_x_tree_view","import_react","import_react","import_jsx_runtime","module","import_jsx_runtime","module","ExpandMoreIcon","ChevronRightIcon","import_jsx_runtime","CloseIcon"]}
@@ -110,7 +110,6 @@ var useModulesFromNode = (filter, config) => {
110
110
  });
111
111
  const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve("*", filterOptions);
112
112
  setResult(moduleInstances);
113
- setResult(moduleInstances);
114
113
  return moduleInstances;
115
114
  }
116
115
  console.log("Result: No Node");
@@ -146,6 +145,96 @@ var useNodeFromNode = (nameOrAddressOrInstance, config) => {
146
145
  return [instance, error];
147
146
  };
148
147
 
148
+ // src/hooks/useWeakModuleFromNode.ts
149
+ import { usePromise as usePromise5 } from "@xylabs/react-promise";
150
+ import { asModuleInstance as asModuleInstance2, isModuleInstance as isModuleInstance2 } from "@xyo-network/module-model";
151
+ import { useState as useState3 } from "react";
152
+ var useWeakModuleFromNode = (nameOrAddressOrInstance, config) => {
153
+ const [node, nodeError] = useNode(config);
154
+ const logger = useModuleFromNodeConfigLogger(config);
155
+ const filterOptions = useModuleFilterOptions(config);
156
+ const [result, setResult] = useState3();
157
+ const [, error] = usePromise5(async () => {
158
+ logger == null ? void 0 : logger.debug("useModuleFromNode: resolving");
159
+ const nodeInstance = node;
160
+ if (nodeInstance && nameOrAddressOrInstance) {
161
+ nodeInstance.on("moduleAttached", ({ module }) => {
162
+ var _a;
163
+ logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`);
164
+ if (module.address === nameOrAddressOrInstance || ((_a = module.config) == null ? void 0 : _a.name) === nameOrAddressOrInstance) {
165
+ const instance = asModuleInstance2(module);
166
+ setResult(instance ? new WeakRef(instance) : void 0);
167
+ }
168
+ });
169
+ nodeInstance.on("moduleDetached", ({ module }) => {
170
+ var _a;
171
+ logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`);
172
+ if (module.address === nameOrAddressOrInstance || ((_a = module.config) == null ? void 0 : _a.name) === nameOrAddressOrInstance) {
173
+ setResult(void 0);
174
+ }
175
+ });
176
+ if (isModuleInstance2(nameOrAddressOrInstance)) {
177
+ setResult(new WeakRef(nameOrAddressOrInstance));
178
+ } else {
179
+ const result2 = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions);
180
+ logger == null ? void 0 : logger.debug(`Result: ${result2 == null ? void 0 : result2.address}`);
181
+ setResult(result2 ? new WeakRef(result2) : void 0);
182
+ }
183
+ return result;
184
+ }
185
+ logger == null ? void 0 : logger.debug("Result: No Node");
186
+ return;
187
+ }, [node, nameOrAddressOrInstance]);
188
+ return [result, nodeError ?? error];
189
+ };
190
+
191
+ // src/hooks/useWeakModulesFromNode.ts
192
+ import { usePromise as usePromise6 } from "@xylabs/react-promise";
193
+ import { useState as useState4 } from "react";
194
+ var useWeakModulesFromNode = (filter, config) => {
195
+ const [node, nodeError] = useNode(config);
196
+ const logger = config == null ? void 0 : config.logger;
197
+ const filterOptions = useModuleFilterOptions();
198
+ const [result, setResult] = useState4();
199
+ const [, error] = usePromise6(async () => {
200
+ logger == null ? void 0 : logger.debug("useModuleFromNode: resolving");
201
+ const nodeInstance = node;
202
+ if (nodeInstance) {
203
+ nodeInstance.on("moduleAttached", async ({ module }) => {
204
+ const nodeInstance2 = node;
205
+ logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`);
206
+ const moduleInstances2 = filter ? await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve(filter, filterOptions)) : await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve("*", filterOptions));
207
+ setResult(moduleInstances2 == null ? void 0 : moduleInstances2.map((module2) => new WeakRef(module2)));
208
+ });
209
+ nodeInstance.on("moduleDetached", async ({ module }) => {
210
+ const nodeInstance2 = node;
211
+ logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`);
212
+ const moduleInstances2 = filter ? await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve(filter, filterOptions)) : await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve("*", filterOptions));
213
+ setResult(moduleInstances2 == null ? void 0 : moduleInstances2.map((module2) => new WeakRef(module2)));
214
+ });
215
+ const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve("*", filterOptions);
216
+ setResult(moduleInstances == null ? void 0 : moduleInstances.map((module) => new WeakRef(module)));
217
+ return moduleInstances;
218
+ }
219
+ console.log("Result: No Node");
220
+ return;
221
+ }, [node, filter]);
222
+ return [result, nodeError ?? error];
223
+ };
224
+
225
+ // src/hooks/useWeakNodeConfigNodeField.ts
226
+ import { useMemo as useMemo2 } from "react";
227
+ var useWeakNodeConfigNodeField = (config) => {
228
+ const nodeAddress = useMemo2(() => typeof (config == null ? void 0 : config.node) === "string" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
229
+ const nodeInstance = useMemo2(() => typeof (config == null ? void 0 : config.node) === "object" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
230
+ return [nodeAddress, nodeInstance];
231
+ };
232
+
233
+ // src/hooks/WeakModuleFromNodeConfig.ts
234
+ var useWeakModuleFromNodeConfigLogger = (config) => {
235
+ return config == null ? void 0 : config.logger;
236
+ };
237
+
149
238
  // src/components/NodeDescriptionBox.tsx
150
239
  import { jsx } from "react/jsx-runtime";
151
240
  var NodeDescriptionBox = ({ node, ...props }) => {
@@ -180,17 +269,17 @@ import { useRef } from "react";
180
269
  import { styled } from "@mui/material";
181
270
  import { TreeItem } from "@mui/x-tree-view";
182
271
  import { useAsyncEffect } from "@xylabs/react-async-effect";
183
- import { useState as useState3 } from "react";
272
+ import { useState as useState5 } from "react";
184
273
  import { jsx as jsx3, jsxs } from "react/jsx-runtime";
185
274
  var RenderModule = ({ module, idRef }) => {
186
275
  const { address, queries } = module ?? {};
187
- const [childModules, setChildModules] = useState3();
276
+ const [childModules, setChildModules] = useState5();
188
277
  useAsyncEffect(
189
278
  // eslint-disable-next-line react-hooks/exhaustive-deps
190
279
  async (mounted) => {
191
280
  const children = (await module.resolve("*")).filter((childModule) => childModule.address !== address);
192
281
  if (mounted()) {
193
- setChildModules(children);
282
+ setChildModules(children.map((childModule) => new WeakRef(childModule)));
194
283
  }
195
284
  },
196
285
  [module, address]
@@ -204,7 +293,10 @@ var RenderModule = ({ module, idRef }) => {
204
293
  queries.map((query, index) => {
205
294
  return /* @__PURE__ */ jsx3(TreeItem, { nodeId: increment(), label: `query : ${query}`, sx: { mb: index === queries.length - 1 ? 1.5 : 0.5 } }, query);
206
295
  }),
207
- childModules && childModules.length > 0 ? /* @__PURE__ */ jsx3(TreeItem, { nodeId: increment(), label: "children", sx: { mb: 0.5 }, children: childModules.map((childModule) => /* @__PURE__ */ jsx3(RenderModule, { module: childModule, idRef }, childModule.address)) }) : null
296
+ childModules && childModules.length > 0 ? /* @__PURE__ */ jsx3(TreeItem, { nodeId: increment(), label: "children", sx: { mb: 0.5 }, children: childModules.map((childModuleRef) => {
297
+ const childModule = childModuleRef.deref();
298
+ return childModule ? /* @__PURE__ */ jsx3(RenderModule, { module: childModule, idRef }, childModule == null ? void 0 : childModule.address) : null;
299
+ }) }) : null
208
300
  ] });
209
301
  };
210
302
  var StyledAddressTreeItem = styled(TreeItem, { name: "StyledAddressTreeItem" })(({ theme }) => ({
@@ -262,6 +354,10 @@ export {
262
354
  useNodeConfigNodeField,
263
355
  useNodeDescription,
264
356
  useNodeFromNode,
265
- useProvidedNode
357
+ useProvidedNode,
358
+ useWeakModuleFromNode,
359
+ useWeakModuleFromNodeConfigLogger,
360
+ useWeakModulesFromNode,
361
+ useWeakNodeConfigNodeField
266
362
  };
267
363
  //# sourceMappingURL=index.js.map