@xyo-network/react-node-renderer 2.48.0-rc.1 → 2.48.0-rc.3

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.
@@ -6,6 +6,7 @@ const BubbleChartRounded_1 = tslib_1.__importDefault(require("@mui/icons-materia
6
6
  const Hub_1 = tslib_1.__importDefault(require("@mui/icons-material/Hub"));
7
7
  const Inventory2Rounded_1 = tslib_1.__importDefault(require("@mui/icons-material/Inventory2Rounded"));
8
8
  const QuestionMarkRounded_1 = tslib_1.__importDefault(require("@mui/icons-material/QuestionMarkRounded"));
9
+ const TimerRounded_1 = tslib_1.__importDefault(require("@mui/icons-material/TimerRounded"));
9
10
  const VisibilityRounded_1 = tslib_1.__importDefault(require("@mui/icons-material/VisibilityRounded"));
10
11
  // eslint-disable-next-line @typescript-eslint/ban-types
11
12
  exports.CyIconSet = {
@@ -13,6 +14,7 @@ exports.CyIconSet = {
13
14
  diviner: BubbleChartRounded_1.default,
14
15
  module: QuestionMarkRounded_1.default,
15
16
  node: Hub_1.default,
17
+ sentinel: TimerRounded_1.default,
16
18
  witness: VisibilityRounded_1.default,
17
19
  };
18
20
  //# sourceMappingURL=CytoscapeIcons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CytoscapeIcons.js","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeIcons.tsx"],"names":[],"mappings":";;;;AAAA,wGAA2E;AAC3E,0EAA6C;AAC7C,sGAAyE;AACzE,0GAA6E;AAC7E,sGAAyE;AAMzE,wDAAwD;AAC3C,QAAA,SAAS,GAAyE;IAC7F,SAAS,EAAE,2BAAqB;IAChC,OAAO,EAAE,4BAAsB;IAC/B,MAAM,EAAE,6BAAuB;IAC/B,IAAI,EAAE,aAAO;IACb,OAAO,EAAE,2BAAqB;CAC/B,CAAA"}
1
+ {"version":3,"file":"CytoscapeIcons.js","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeIcons.tsx"],"names":[],"mappings":";;;;AAAA,wGAA2E;AAC3E,0EAA6C;AAC7C,sGAAyE;AACzE,0GAA6E;AAC7E,4FAA+D;AAC/D,sGAAyE;AAMzE,wDAAwD;AAC3C,QAAA,SAAS,GAAyE;IAC7F,SAAS,EAAE,2BAAqB;IAChC,OAAO,EAAE,4BAAsB;IAC/B,MAAM,EAAE,6BAAuB;IAC/B,IAAI,EAAE,aAAO;IACb,QAAQ,EAAE,sBAAgB;IAC1B,OAAO,EAAE,2BAAqB;CAC/B,CAAA"}
@@ -11,33 +11,52 @@ const Cytoscape_1 = require("../../Cytoscape");
11
11
  */
12
12
  const useCytoscapeElements = (targetNode) => {
13
13
  const [elements, setElements] = (0, react_1.useState)([]);
14
+ const buildElements = (0, react_1.useCallback)((wrapper) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
15
+ var _a;
16
+ try {
17
+ const [description, newRootNode] = yield Cytoscape_1.CytoscapeElements.buildRootNode(wrapper);
18
+ const newElements = [newRootNode];
19
+ const children = description.children;
20
+ yield Promise.allSettled((_a = (children !== null && children !== void 0 ? children : [])) === null || _a === void 0 ? void 0 : _a.map((address) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
21
+ try {
22
+ const newNode = yield Cytoscape_1.CytoscapeElements.buildChild(wrapper, address);
23
+ newElements.push(newNode);
24
+ const newEdge = Cytoscape_1.CytoscapeElements.buildEdge(newRootNode, newNode);
25
+ newElements.push(newEdge);
26
+ }
27
+ catch (e) {
28
+ console.error('Error parsing children', e);
29
+ }
30
+ })));
31
+ setElements(newElements);
32
+ }
33
+ catch (e) {
34
+ console.error('Error Getting initial description', e);
35
+ }
36
+ }), []);
14
37
  (0, react_shared_1.useAsyncEffect)(
15
38
  // eslint-disable-next-line react-hooks/exhaustive-deps
16
39
  () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
17
- var _a;
18
40
  if (targetNode) {
19
- try {
20
- const [description, newRootNode] = yield Cytoscape_1.CytoscapeElements.buildRootNode(targetNode);
21
- const newElements = [newRootNode];
22
- const children = description.children;
23
- yield Promise.allSettled((_a = (children !== null && children !== void 0 ? children : [])) === null || _a === void 0 ? void 0 : _a.map((address) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
24
- try {
25
- const newNode = yield Cytoscape_1.CytoscapeElements.buildChild(targetNode, address);
26
- newElements.push(newNode);
27
- const newEdge = Cytoscape_1.CytoscapeElements.buildEdge(newRootNode, newNode);
28
- newElements.push(newEdge);
29
- }
30
- catch (e) {
31
- console.error('Error parsing children', e);
32
- }
33
- })));
34
- setElements(newElements);
35
- }
36
- catch (e) {
37
- console.error('Error Getting initial description', e);
38
- }
41
+ yield buildElements(targetNode);
42
+ }
43
+ }), [buildElements, targetNode]);
44
+ (0, react_1.useEffect)(() => {
45
+ let attachedListener = undefined;
46
+ let detachedListener = undefined;
47
+ if (targetNode) {
48
+ attachedListener = targetNode.on('moduleAttached', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
49
+ yield buildElements(targetNode);
50
+ }));
51
+ detachedListener = targetNode.on('moduleDetached', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
52
+ yield buildElements(targetNode);
53
+ }));
39
54
  }
40
- }), [targetNode]);
55
+ return () => {
56
+ attachedListener === null || attachedListener === void 0 ? void 0 : attachedListener();
57
+ detachedListener === null || detachedListener === void 0 ? void 0 : detachedListener();
58
+ };
59
+ }, [buildElements, targetNode]);
41
60
  return elements;
42
61
  };
43
62
  exports.useCytoscapeElements = useCytoscapeElements;
@@ -1 +1 @@
1
- {"version":3,"file":"useCytoscapeElements.js","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useCytoscapeElements.ts"],"names":[],"mappings":";;;;AAAA,uDAAqD;AAGrD,iCAAgC;AAEhC,+CAAmD;AAEnD;;;GAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,UAAwB,EAAE,EAAE;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAsB,EAAE,CAAC,CAAA;IAEjE,IAAA,6BAAc;IACZ,uDAAuD;IACvD,GAAS,EAAE;;QACT,IAAI,UAAU,EAAE;YACd,IAAI;gBACF,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,6BAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;gBACpF,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAA;gBAEjC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;gBACrC,MAAM,OAAO,CAAC,UAAU,CACtB,MAAA,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,0CAAE,GAAG,CAAC,CAAO,OAAO,EAAE,EAAE;oBACtC,IAAI;wBACF,MAAM,OAAO,GAAG,MAAM,6BAAiB,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;wBACvE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBAEzB,MAAM,OAAO,GAAG,6BAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;wBACjE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;qBAC1B;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;qBAC3C;gBACH,CAAC,CAAA,CAAC,CACH,CAAA;gBACD,WAAW,CAAC,WAAW,CAAC,CAAA;aACzB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAA;aACtD;SACF;IACH,CAAC,CAAA,EACD,CAAC,UAAU,CAAC,CACb,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAnCY,QAAA,oBAAoB,wBAmChC"}
1
+ {"version":3,"file":"useCytoscapeElements.js","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useCytoscapeElements.ts"],"names":[],"mappings":";;;;AAAA,uDAAqD;AAIrD,iCAAwD;AAExD,+CAAmD;AAEnD;;;GAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,UAAwB,EAAE,EAAE;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAsB,EAAE,CAAC,CAAA;IAEjE,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,CAAO,OAAoB,EAAE,EAAE;;QAC/D,IAAI;YACF,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,6BAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACjF,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAA;YAEjC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;YACrC,MAAM,OAAO,CAAC,UAAU,CACtB,MAAA,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,0CAAE,GAAG,CAAC,CAAO,OAAO,EAAE,EAAE;gBACtC,IAAI;oBACF,MAAM,OAAO,GAAG,MAAM,6BAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;oBACpE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAEzB,MAAM,OAAO,GAAG,6BAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;oBACjE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBAC1B;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;iBAC3C;YACH,CAAC,CAAA,CAAC,CACH,CAAA;YACD,WAAW,CAAC,WAAW,CAAC,CAAA;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAA;SACtD;IACH,CAAC,CAAA,EAAE,EAAE,CAAC,CAAA;IAEN,IAAA,6BAAc;IACZ,uDAAuD;IACvD,GAAS,EAAE;QACT,IAAI,UAAU,EAAE;YACd,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;SAChC;IACH,CAAC,CAAA,EACD,CAAC,aAAa,EAAE,UAAU,CAAC,CAC5B,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,GAAyC,SAAS,CAAA;QACtE,IAAI,gBAAgB,GAAyC,SAAS,CAAA;QAEtE,IAAI,UAAU,EAAE;YACd,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAS,EAAE;gBAC5D,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;YACjC,CAAC,CAAA,CAAC,CAAA;YACF,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAS,EAAE;gBAC5D,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;YACjC,CAAC,CAAA,CAAC,CAAA;SACH;QAED,OAAO,GAAG,EAAE;YACV,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAA;YACpB,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAA;QACtB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAA;IAE/B,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AA1DY,QAAA,oBAAoB,wBA0DhC"}
@@ -9,7 +9,7 @@ const lib_1 = require("../../lib");
9
9
  const useIcons = () => {
10
10
  const theme = (0, material_1.useTheme)();
11
11
  const icons = (0, react_1.useMemo)(() => {
12
- const iconMap = { archivist: '', diviner: '', module: '', node: '', witness: '' };
12
+ const iconMap = { archivist: '', diviner: '', module: '', node: '', sentinel: '', witness: '' };
13
13
  return Object.entries(Cytoscape_1.CyIconSet).reduce((acc, [name, IconComponent]) => {
14
14
  const icon = (0, jsx_runtime_1.jsx)(IconComponent, { fontSize: "small" });
15
15
  acc[name] = (0, lib_1.encodeSvg)(icon, theme.palette.getContrastText(theme.palette.text.primary));
@@ -1 +1 @@
1
- {"version":3,"file":"useIcons.js","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useIcons.tsx"],"names":[],"mappings":";;;;AAAA,4CAAwC;AACxC,iCAA+B;AAE/B,+CAAwD;AACxD,mCAAqC;AAE9B,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,KAAK,GAAG,IAAA,mBAAQ,GAAE,CAAA;IACxB,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACzB,MAAM,OAAO,GAAgC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAC9G,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE;YACrE,MAAM,IAAI,GAAG,uBAAC,aAAa,IAAC,QAAQ,EAAC,OAAO,GAAG,CAAA;YAC/C,GAAG,CAAC,IAAmB,CAAC,GAAG,IAAA,eAAS,EAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YACrG,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAEnB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAZY,QAAA,QAAQ,YAYpB"}
1
+ {"version":3,"file":"useIcons.js","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useIcons.tsx"],"names":[],"mappings":";;;;AAAA,4CAAwC;AACxC,iCAA+B;AAE/B,+CAAwD;AACxD,mCAAqC;AAE9B,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,KAAK,GAAG,IAAA,mBAAQ,GAAE,CAAA;IACxB,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACzB,MAAM,OAAO,GAAgC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAC5H,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE;YACrE,MAAM,IAAI,GAAG,uBAAC,aAAa,IAAC,QAAQ,EAAC,OAAO,GAAG,CAAA;YAC/C,GAAG,CAAC,IAAmB,CAAC,GAAG,IAAA,eAAS,EAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YACrG,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAEnB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAZY,QAAA,QAAQ,YAYpB"}
@@ -17,7 +17,7 @@ const encodeSvg = (reactElement, color) => {
17
17
  };
18
18
  exports.encodeSvg = encodeSvg;
19
19
  const parseModuleType = (queries) => {
20
- let type;
20
+ let type = 'module';
21
21
  if (queries) {
22
22
  for (let i = 0; i < queries.length; i++) {
23
23
  if (queries[i].includes('archivist')) {
@@ -32,6 +32,10 @@ const parseModuleType = (queries) => {
32
32
  type = 'node';
33
33
  break;
34
34
  }
35
+ if (queries[i].includes('sentinel')) {
36
+ type = 'sentinel';
37
+ break;
38
+ }
35
39
  if (queries[i].includes('witness')) {
36
40
  type = 'witness';
37
41
  break;
@@ -40,6 +44,7 @@ const parseModuleType = (queries) => {
40
44
  }
41
45
  return type;
42
46
  }
47
+ return 'module';
43
48
  };
44
49
  exports.parseModuleType = parseModuleType;
45
50
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";;;AACA,sDAAsD;AACtD,6CAAuD;AAEvD,MAAM,OAAO,GAAG,qBAAqB,CAAA;AAE9B,MAAM,SAAS,GAAG,CAAC,YAA0B,EAAE,KAAc,EAAE,EAAE;IACtE,MAAM,SAAS,GAAG,IAAA,6BAAoB,EAAC,YAAY,CAAC,CAAA;IAEpD,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;QAC9D,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAA;KACzC;IAED,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAA;AACvE,CAAC,CAAA;AAZY,QAAA,SAAS,aAYrB;AAEM,MAAM,eAAe,GAAG,CAAC,OAAkB,EAAE,EAAE;IACpD,IAAI,IAAI,CAAA;IACR,IAAI,OAAO,EAAE;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACpC,IAAI,GAAG,WAAW,CAAA;gBAClB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,GAAG,SAAS,CAAA;gBAChB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC/B,IAAI,GAAG,MAAM,CAAA;gBACb,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,GAAG,SAAS,CAAA;gBAChB,MAAK;aACN;YACD,IAAI,GAAG,QAAQ,CAAA;SAChB;QACD,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAxBY,QAAA,eAAe,mBAwB3B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";;;AACA,sDAAsD;AACtD,6CAAuD;AAIvD,MAAM,OAAO,GAAG,qBAAqB,CAAA;AAE9B,MAAM,SAAS,GAAG,CAAC,YAA0B,EAAE,KAAc,EAAE,EAAE;IACtE,MAAM,SAAS,GAAG,IAAA,6BAAoB,EAAC,YAAY,CAAC,CAAA;IAEpD,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;QAC9D,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAA;KACzC;IAED,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAA;AACvE,CAAC,CAAA;AAZY,QAAA,SAAS,aAYrB;AAEM,MAAM,eAAe,GAAG,CAAC,OAAkB,EAAe,EAAE;IACjE,IAAI,IAAI,GAAgB,QAAQ,CAAA;IAChC,IAAI,OAAO,EAAE;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACpC,IAAI,GAAG,WAAW,CAAA;gBAClB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,GAAG,SAAS,CAAA;gBAChB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC/B,IAAI,GAAG,MAAM,CAAA;gBACb,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACnC,IAAI,GAAG,UAAU,CAAA;gBACjB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,GAAG,SAAS,CAAA;gBAChB,MAAK;aACN;YACD,IAAI,GAAG,QAAQ,CAAA;SAChB;QACD,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AA7BY,QAAA,eAAe,mBA6B3B"}
package/dist/docs.json CHANGED
@@ -47,7 +47,7 @@
47
47
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
48
48
  "line": 8,
49
49
  "character": 9,
50
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L8"
50
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L8"
51
51
  }
52
52
  ],
53
53
  "type": {
@@ -69,7 +69,7 @@
69
69
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
70
70
  "line": 10,
71
71
  "character": 9,
72
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L10"
72
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L10"
73
73
  }
74
74
  ],
75
75
  "signatures": [
@@ -327,7 +327,7 @@
327
327
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
328
328
  "line": 16,
329
329
  "character": 9,
330
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L16"
330
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L16"
331
331
  }
332
332
  ],
333
333
  "signatures": [
@@ -385,7 +385,7 @@
385
385
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
386
386
  "line": 18,
387
387
  "character": 6,
388
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L18"
388
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L18"
389
389
  }
390
390
  ],
391
391
  "type": {
@@ -408,7 +408,7 @@
408
408
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
409
409
  "line": 19,
410
410
  "character": 8,
411
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L19"
411
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L19"
412
412
  }
413
413
  ],
414
414
  "type": {
@@ -428,7 +428,7 @@
428
428
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
429
429
  "line": 20,
430
430
  "character": 8,
431
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L20"
431
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L20"
432
432
  }
433
433
  ],
434
434
  "type": {
@@ -457,7 +457,7 @@
457
457
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
458
458
  "line": 21,
459
459
  "character": 8,
460
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L21"
460
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L21"
461
461
  }
462
462
  ],
463
463
  "type": {
@@ -491,7 +491,7 @@
491
491
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
492
492
  "line": 18,
493
493
  "character": 12,
494
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L18"
494
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L18"
495
495
  }
496
496
  ]
497
497
  }
@@ -512,7 +512,7 @@
512
512
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
513
513
  "line": 17,
514
514
  "character": 11,
515
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L17"
515
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L17"
516
516
  }
517
517
  ]
518
518
  }
@@ -533,7 +533,7 @@
533
533
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
534
534
  "line": 26,
535
535
  "character": 9,
536
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L26"
536
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L26"
537
537
  }
538
538
  ],
539
539
  "signatures": [
@@ -580,7 +580,7 @@
580
580
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
581
581
  "line": 37,
582
582
  "character": 9,
583
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L37"
583
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L37"
584
584
  }
585
585
  ],
586
586
  "signatures": [
@@ -838,7 +838,7 @@
838
838
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
839
839
  "line": 42,
840
840
  "character": 9,
841
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L42"
841
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L42"
842
842
  }
843
843
  ],
844
844
  "signatures": [
@@ -909,7 +909,7 @@
909
909
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts",
910
910
  "line": 7,
911
911
  "character": 13,
912
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L7"
912
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeElements.ts#L7"
913
913
  }
914
914
  ]
915
915
  },
@@ -933,7 +933,7 @@
933
933
  "fileName": "packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx",
934
934
  "line": 10,
935
935
  "character": 2,
936
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L10"
936
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L10"
937
937
  }
938
938
  ],
939
939
  "type": {
@@ -13905,7 +13905,7 @@
13905
13905
  "fileName": "packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx",
13906
13906
  "line": 11,
13907
13907
  "character": 2,
13908
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L11"
13908
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L11"
13909
13909
  }
13910
13910
  ],
13911
13911
  "type": {
@@ -19329,13 +19329,13 @@
19329
19329
  "fileName": "packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx",
19330
19330
  "line": 9,
19331
19331
  "character": 17,
19332
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L9"
19332
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L9"
19333
19333
  },
19334
19334
  {
19335
19335
  "fileName": "packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx",
19336
19336
  "line": 14,
19337
19337
  "character": 13,
19338
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L14"
19338
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L14"
19339
19339
  }
19340
19340
  ],
19341
19341
  "extendedTypes": [
@@ -19356,9 +19356,9 @@
19356
19356
  "sources": [
19357
19357
  {
19358
19358
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx",
19359
- "line": 9,
19359
+ "line": 10,
19360
19360
  "character": 12,
19361
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx#L9"
19361
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx#L10"
19362
19362
  }
19363
19363
  ],
19364
19364
  "type": {
@@ -19383,6 +19383,10 @@
19383
19383
  {
19384
19384
  "type": "literal",
19385
19385
  "value": "witness"
19386
+ },
19387
+ {
19388
+ "type": "literal",
19389
+ "value": "sentinel"
19386
19390
  }
19387
19391
  ]
19388
19392
  }
@@ -19398,9 +19402,9 @@
19398
19402
  "sources": [
19399
19403
  {
19400
19404
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx",
19401
- "line": 12,
19405
+ "line": 13,
19402
19406
  "character": 13,
19403
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx#L12"
19407
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx#L13"
19404
19408
  }
19405
19409
  ],
19406
19410
  "type": {
@@ -19428,9 +19432,9 @@
19428
19432
  "sources": [
19429
19433
  {
19430
19434
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx",
19431
- "line": 12,
19435
+ "line": 13,
19432
19436
  "character": 80,
19433
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx#L12"
19437
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeIcons.tsx#L13"
19434
19438
  }
19435
19439
  ]
19436
19440
  }
@@ -19467,7 +19471,7 @@
19467
19471
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19468
19472
  "line": 28,
19469
19473
  "character": 13,
19470
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L28"
19474
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L28"
19471
19475
  }
19472
19476
  ],
19473
19477
  "signatures": [
@@ -19525,7 +19529,7 @@
19525
19529
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19526
19530
  "line": 29,
19527
19531
  "character": 2,
19528
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L29"
19532
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L29"
19529
19533
  }
19530
19534
  ],
19531
19535
  "type": {
@@ -19545,7 +19549,7 @@
19545
19549
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19546
19550
  "line": 30,
19547
19551
  "character": 2,
19548
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L30"
19552
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L30"
19549
19553
  }
19550
19554
  ],
19551
19555
  "type": {
@@ -19568,7 +19572,7 @@
19568
19572
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19569
19573
  "line": 31,
19570
19574
  "character": 4,
19571
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L31"
19575
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L31"
19572
19576
  }
19573
19577
  ],
19574
19578
  "type": {
@@ -19588,7 +19592,7 @@
19588
19592
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19589
19593
  "line": 32,
19590
19594
  "character": 4,
19591
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L32"
19595
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L32"
19592
19596
  }
19593
19597
  ],
19594
19598
  "type": {
@@ -19617,7 +19621,7 @@
19617
19621
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19618
19622
  "line": 33,
19619
19623
  "character": 4,
19620
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L33"
19624
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L33"
19621
19625
  }
19622
19626
  ],
19623
19627
  "type": {
@@ -19637,7 +19641,7 @@
19637
19641
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19638
19642
  "line": 34,
19639
19643
  "character": 4,
19640
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L34"
19644
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L34"
19641
19645
  }
19642
19646
  ],
19643
19647
  "type": {
@@ -19666,7 +19670,7 @@
19666
19670
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19667
19671
  "line": 35,
19668
19672
  "character": 4,
19669
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L35"
19673
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L35"
19670
19674
  }
19671
19675
  ],
19672
19676
  "type": {
@@ -19686,7 +19690,7 @@
19686
19690
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19687
19691
  "line": 36,
19688
19692
  "character": 4,
19689
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L36"
19693
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L36"
19690
19694
  }
19691
19695
  ],
19692
19696
  "type": {
@@ -19714,7 +19718,7 @@
19714
19718
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19715
19719
  "line": 30,
19716
19720
  "character": 9,
19717
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L30"
19721
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L30"
19718
19722
  }
19719
19723
  ]
19720
19724
  }
@@ -19736,7 +19740,7 @@
19736
19740
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19737
19741
  "line": 28,
19738
19742
  "character": 78,
19739
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L28"
19743
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L28"
19740
19744
  }
19741
19745
  ]
19742
19746
  }
@@ -19755,7 +19759,7 @@
19755
19759
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19756
19760
  "line": 5,
19757
19761
  "character": 13,
19758
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L5"
19762
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L5"
19759
19763
  }
19760
19764
  ],
19761
19765
  "signatures": [
@@ -19800,13 +19804,13 @@
19800
19804
  "fileName": "packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx",
19801
19805
  "line": 9,
19802
19806
  "character": 17,
19803
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L9"
19807
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L9"
19804
19808
  },
19805
19809
  {
19806
19810
  "fileName": "packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx",
19807
19811
  "line": 14,
19808
19812
  "character": 13,
19809
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L14"
19813
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/components/RelationalGraph.tsx#L14"
19810
19814
  }
19811
19815
  ],
19812
19816
  "signatures": [
@@ -19913,7 +19917,7 @@
19913
19917
  "fileName": "packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts",
19914
19918
  "line": 15,
19915
19919
  "character": 13,
19916
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L15"
19920
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/Cytoscape/CytoscapeStyles.ts#L15"
19917
19921
  }
19918
19922
  ],
19919
19923
  "signatures": [
@@ -19980,9 +19984,9 @@
19980
19984
  "sources": [
19981
19985
  {
19982
19986
  "fileName": "packages/sdk/packages/node-renderer/src/lib/utils.ts",
19983
- "line": 7,
19987
+ "line": 9,
19984
19988
  "character": 13,
19985
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/lib/utils.ts#L7"
19989
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/lib/utils.ts#L9"
19986
19990
  }
19987
19991
  ],
19988
19992
  "signatures": [
@@ -20063,9 +20067,9 @@
20063
20067
  "sources": [
20064
20068
  {
20065
20069
  "fileName": "packages/sdk/packages/node-renderer/src/lib/utils.ts",
20066
- "line": 21,
20070
+ "line": 23,
20067
20071
  "character": 13,
20068
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/lib/utils.ts#L21"
20072
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/lib/utils.ts#L23"
20069
20073
  }
20070
20074
  ],
20071
20075
  "signatures": [
@@ -20094,17 +20098,9 @@
20094
20098
  }
20095
20099
  ],
20096
20100
  "type": {
20097
- "type": "union",
20098
- "types": [
20099
- {
20100
- "type": "intrinsic",
20101
- "name": "undefined"
20102
- },
20103
- {
20104
- "type": "intrinsic",
20105
- "name": "string"
20106
- }
20107
- ]
20101
+ "type": "reference",
20102
+ "id": 416,
20103
+ "name": "CyNodeIcons"
20108
20104
  }
20109
20105
  }
20110
20106
  ]
@@ -20118,9 +20114,9 @@
20118
20114
  "sources": [
20119
20115
  {
20120
20116
  "fileName": "packages/sdk/packages/node-renderer/src/hooks/cytoscape/useCytoscapeElements.ts",
20121
- "line": 12,
20117
+ "line": 13,
20122
20118
  "character": 13,
20123
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/hooks/cytoscape/useCytoscapeElements.ts#L12"
20119
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/hooks/cytoscape/useCytoscapeElements.ts#L13"
20124
20120
  }
20125
20121
  ],
20126
20122
  "signatures": [
@@ -20370,7 +20366,7 @@
20370
20366
  "fileName": "packages/sdk/packages/node-renderer/src/hooks/cytoscape/useCytoscapeOptions.ts",
20371
20367
  "line": 7,
20372
20368
  "character": 13,
20373
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/hooks/cytoscape/useCytoscapeOptions.ts#L7"
20369
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/hooks/cytoscape/useCytoscapeOptions.ts#L7"
20374
20370
  }
20375
20371
  ],
20376
20372
  "signatures": [
@@ -20553,7 +20549,7 @@
20553
20549
  "fileName": "packages/sdk/packages/node-renderer/src/index.ts",
20554
20550
  "line": 1,
20555
20551
  "character": 0,
20556
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/a59ee2c451b/packages/sdk/packages/node-renderer/src/index.ts#L1"
20552
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5cee617f5/packages/sdk/packages/node-renderer/src/index.ts#L1"
20557
20553
  }
20558
20554
  ]
20559
20555
  }
@@ -2,6 +2,7 @@ import BubbleChartRoundedIcon from '@mui/icons-material/BubbleChartRounded';
2
2
  import HubIcon from '@mui/icons-material/Hub';
3
3
  import Inventory2RoundedIcon from '@mui/icons-material/Inventory2Rounded';
4
4
  import QuestionMarkRoundedIcon from '@mui/icons-material/QuestionMarkRounded';
5
+ import TimerRoundedIcon from '@mui/icons-material/TimerRounded';
5
6
  import VisibilityRoundedIcon from '@mui/icons-material/VisibilityRounded';
6
7
  // eslint-disable-next-line @typescript-eslint/ban-types
7
8
  export const CyIconSet = {
@@ -9,6 +10,7 @@ export const CyIconSet = {
9
10
  diviner: BubbleChartRoundedIcon,
10
11
  module: QuestionMarkRoundedIcon,
11
12
  node: HubIcon,
13
+ sentinel: TimerRoundedIcon,
12
14
  witness: VisibilityRoundedIcon,
13
15
  };
14
16
  //# sourceMappingURL=CytoscapeIcons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CytoscapeIcons.js","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeIcons.tsx"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,OAAO,MAAM,yBAAyB,CAAA;AAC7C,OAAO,qBAAqB,MAAM,uCAAuC,CAAA;AACzE,OAAO,uBAAuB,MAAM,yCAAyC,CAAA;AAC7E,OAAO,qBAAqB,MAAM,uCAAuC,CAAA;AAMzE,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAyE;IAC7F,SAAS,EAAE,qBAAqB;IAChC,OAAO,EAAE,sBAAsB;IAC/B,MAAM,EAAE,uBAAuB;IAC/B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,qBAAqB;CAC/B,CAAA"}
1
+ {"version":3,"file":"CytoscapeIcons.js","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeIcons.tsx"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,OAAO,MAAM,yBAAyB,CAAA;AAC7C,OAAO,qBAAqB,MAAM,uCAAuC,CAAA;AACzE,OAAO,uBAAuB,MAAM,yCAAyC,CAAA;AAC7E,OAAO,gBAAgB,MAAM,kCAAkC,CAAA;AAC/D,OAAO,qBAAqB,MAAM,uCAAuC,CAAA;AAMzE,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAyE;IAC7F,SAAS,EAAE,qBAAqB;IAChC,OAAO,EAAE,sBAAsB;IAC/B,MAAM,EAAE,uBAAuB;IAC/B,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,qBAAqB;CAC/B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared';
2
- import { useState } from 'react';
2
+ import { useCallback, useEffect, useState } from 'react';
3
3
  import { CytoscapeElements } from '../../Cytoscape';
4
4
  /**
5
5
  * Note: Relies on describe but could eventually be converted to a discover call
@@ -7,32 +7,51 @@ import { CytoscapeElements } from '../../Cytoscape';
7
7
  */
8
8
  export const useCytoscapeElements = (targetNode) => {
9
9
  const [elements, setElements] = useState([]);
10
+ const buildElements = useCallback(async (wrapper) => {
11
+ try {
12
+ const [description, newRootNode] = await CytoscapeElements.buildRootNode(wrapper);
13
+ const newElements = [newRootNode];
14
+ const children = description.children;
15
+ await Promise.allSettled((children ?? [])?.map(async (address) => {
16
+ try {
17
+ const newNode = await CytoscapeElements.buildChild(wrapper, address);
18
+ newElements.push(newNode);
19
+ const newEdge = CytoscapeElements.buildEdge(newRootNode, newNode);
20
+ newElements.push(newEdge);
21
+ }
22
+ catch (e) {
23
+ console.error('Error parsing children', e);
24
+ }
25
+ }));
26
+ setElements(newElements);
27
+ }
28
+ catch (e) {
29
+ console.error('Error Getting initial description', e);
30
+ }
31
+ }, []);
10
32
  useAsyncEffect(
11
33
  // eslint-disable-next-line react-hooks/exhaustive-deps
12
34
  async () => {
13
35
  if (targetNode) {
14
- try {
15
- const [description, newRootNode] = await CytoscapeElements.buildRootNode(targetNode);
16
- const newElements = [newRootNode];
17
- const children = description.children;
18
- await Promise.allSettled((children ?? [])?.map(async (address) => {
19
- try {
20
- const newNode = await CytoscapeElements.buildChild(targetNode, address);
21
- newElements.push(newNode);
22
- const newEdge = CytoscapeElements.buildEdge(newRootNode, newNode);
23
- newElements.push(newEdge);
24
- }
25
- catch (e) {
26
- console.error('Error parsing children', e);
27
- }
28
- }));
29
- setElements(newElements);
30
- }
31
- catch (e) {
32
- console.error('Error Getting initial description', e);
33
- }
36
+ await buildElements(targetNode);
37
+ }
38
+ }, [buildElements, targetNode]);
39
+ useEffect(() => {
40
+ let attachedListener = undefined;
41
+ let detachedListener = undefined;
42
+ if (targetNode) {
43
+ attachedListener = targetNode.on('moduleAttached', async () => {
44
+ await buildElements(targetNode);
45
+ });
46
+ detachedListener = targetNode.on('moduleDetached', async () => {
47
+ await buildElements(targetNode);
48
+ });
34
49
  }
35
- }, [targetNode]);
50
+ return () => {
51
+ attachedListener?.();
52
+ detachedListener?.();
53
+ };
54
+ }, [buildElements, targetNode]);
36
55
  return elements;
37
56
  };
38
57
  //# sourceMappingURL=useCytoscapeElements.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCytoscapeElements.js","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useCytoscapeElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAwB,EAAE,EAAE;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,EAAE,CAAC,CAAA;IAEjE,cAAc;IACZ,uDAAuD;IACvD,KAAK,IAAI,EAAE;QACT,IAAI,UAAU,EAAE;YACd,IAAI;gBACF,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;gBACpF,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAA;gBAEjC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;gBACrC,MAAM,OAAO,CAAC,UAAU,CACtB,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBACtC,IAAI;wBACF,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;wBACvE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBAEzB,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;wBACjE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;qBAC1B;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;qBAC3C;gBACH,CAAC,CAAC,CACH,CAAA;gBACD,WAAW,CAAC,WAAW,CAAC,CAAA;aACzB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAA;aACtD;SACF;IACH,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"useCytoscapeElements.js","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useCytoscapeElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAIrD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAwB,EAAE,EAAE;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,EAAE,CAAC,CAAA;IAEjE,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;QAC/D,IAAI;YACF,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACjF,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAA;YAEjC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;YACrC,MAAM,OAAO,CAAC,UAAU,CACtB,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACtC,IAAI;oBACF,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;oBACpE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAEzB,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;oBACjE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBAC1B;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;iBAC3C;YACH,CAAC,CAAC,CACH,CAAA;YACD,WAAW,CAAC,WAAW,CAAC,CAAA;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAA;SACtD;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,cAAc;IACZ,uDAAuD;IACvD,KAAK,IAAI,EAAE;QACT,IAAI,UAAU,EAAE;YACd,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;SAChC;IACH,CAAC,EACD,CAAC,aAAa,EAAE,UAAU,CAAC,CAC5B,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,GAAyC,SAAS,CAAA;QACtE,IAAI,gBAAgB,GAAyC,SAAS,CAAA;QAEtE,IAAI,UAAU,EAAE;YACd,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAC5D,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;YACjC,CAAC,CAAC,CAAA;YACF,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAC5D,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;YACjC,CAAC,CAAC,CAAA;SACH;QAED,OAAO,GAAG,EAAE;YACV,gBAAgB,EAAE,EAAE,CAAA;YACpB,gBAAgB,EAAE,EAAE,CAAA;QACtB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAA;IAE/B,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
@@ -6,7 +6,7 @@ import { encodeSvg } from '../../lib';
6
6
  export const useIcons = () => {
7
7
  const theme = useTheme();
8
8
  const icons = useMemo(() => {
9
- const iconMap = { archivist: '', diviner: '', module: '', node: '', witness: '' };
9
+ const iconMap = { archivist: '', diviner: '', module: '', node: '', sentinel: '', witness: '' };
10
10
  return Object.entries(CyIconSet).reduce((acc, [name, IconComponent]) => {
11
11
  const icon = _jsx(IconComponent, { fontSize: "small" });
12
12
  acc[name] = encodeSvg(icon, theme.palette.getContrastText(theme.palette.text.primary));
@@ -1 +1 @@
1
- {"version":3,"file":"useIcons.js","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useIcons.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAe,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,OAAO,GAAgC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAC9G,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE;YACrE,MAAM,IAAI,GAAG,KAAC,aAAa,IAAC,QAAQ,EAAC,OAAO,GAAG,CAAA;YAC/C,GAAG,CAAC,IAAmB,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YACrG,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAEnB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"useIcons.js","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useIcons.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAe,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,OAAO,GAAgC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAC5H,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE;YACrE,MAAM,IAAI,GAAG,KAAC,aAAa,IAAC,QAAQ,EAAC,OAAO,GAAG,CAAA;YAC/C,GAAG,CAAC,IAAmB,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YACrG,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAEnB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -13,7 +13,7 @@ export const encodeSvg = (reactElement, color) => {
13
13
  return `${dataUri}${window.encodeURIComponent(svgElement.outerHTML)}`;
14
14
  };
15
15
  export const parseModuleType = (queries) => {
16
- let type;
16
+ let type = 'module';
17
17
  if (queries) {
18
18
  for (let i = 0; i < queries.length; i++) {
19
19
  if (queries[i].includes('archivist')) {
@@ -28,6 +28,10 @@ export const parseModuleType = (queries) => {
28
28
  type = 'node';
29
29
  break;
30
30
  }
31
+ if (queries[i].includes('sentinel')) {
32
+ type = 'sentinel';
33
+ break;
34
+ }
31
35
  if (queries[i].includes('witness')) {
32
36
  type = 'witness';
33
37
  break;
@@ -36,5 +40,6 @@ export const parseModuleType = (queries) => {
36
40
  }
37
41
  return type;
38
42
  }
43
+ return 'module';
39
44
  };
40
45
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AACA,sDAAsD;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,OAAO,GAAG,qBAAqB,CAAA;AAErC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,YAA0B,EAAE,KAAc,EAAE,EAAE;IACtE,MAAM,SAAS,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAEpD,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;QAC9D,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,OAAO,CAAA;KACzC;IAED,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAkB,EAAE,EAAE;IACpD,IAAI,IAAI,CAAA;IACR,IAAI,OAAO,EAAE;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACpC,IAAI,GAAG,WAAW,CAAA;gBAClB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,GAAG,SAAS,CAAA;gBAChB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC/B,IAAI,GAAG,MAAM,CAAA;gBACb,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,GAAG,SAAS,CAAA;gBAChB,MAAK;aACN;YACD,IAAI,GAAG,QAAQ,CAAA;SAChB;QACD,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AACA,sDAAsD;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAIvD,MAAM,OAAO,GAAG,qBAAqB,CAAA;AAErC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,YAA0B,EAAE,KAAc,EAAE,EAAE;IACtE,MAAM,SAAS,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAEpD,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;QAC9D,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,OAAO,CAAA;KACzC;IAED,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAkB,EAAe,EAAE;IACjE,IAAI,IAAI,GAAgB,QAAQ,CAAA;IAChC,IAAI,OAAO,EAAE;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACpC,IAAI,GAAG,WAAW,CAAA;gBAClB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,GAAG,SAAS,CAAA;gBAChB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC/B,IAAI,GAAG,MAAM,CAAA;gBACb,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACnC,IAAI,GAAG,UAAU,CAAA;gBACjB,MAAK;aACN;YACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,GAAG,SAAS,CAAA;gBAChB,MAAK;aACN;YACD,IAAI,GAAG,QAAQ,CAAA;SAChB;QACD,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { SvgIconTypeMap } from '@mui/material';
2
2
  import { OverridableComponent } from '@mui/material/OverridableComponent';
3
- export type CyNodeIcons = 'archivist' | 'diviner' | 'module' | 'node' | 'witness';
3
+ export type CyNodeIcons = 'archivist' | 'diviner' | 'module' | 'node' | 'witness' | 'sentinel';
4
4
  export declare const CyIconSet: Record<CyNodeIcons, OverridableComponent<SvgIconTypeMap<{}, 'svg'>>>;
5
5
  //# sourceMappingURL=CytoscapeIcons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CytoscapeIcons.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeIcons.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAEzE,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;AAGjF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAM1F,CAAA"}
1
+ {"version":3,"file":"CytoscapeIcons.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeIcons.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAEzE,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;AAG9F,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAO1F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCytoscapeElements.d.ts","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useCytoscapeElements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAK7C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gBAAiB,WAAW,wBAmC5D,CAAA"}
1
+ {"version":3,"file":"useCytoscapeElements.d.ts","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useCytoscapeElements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAK7C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gBAAiB,WAAW,wBA0D5D,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { ReactElement } from 'react';
2
+ import { CyNodeIcons } from '../Cytoscape';
2
3
  export declare const encodeSvg: (reactElement: ReactElement, color?: string) => string;
3
- export declare const parseModuleType: (queries?: string[]) => string | undefined;
4
+ export declare const parseModuleType: (queries?: string[]) => CyNodeIcons;
4
5
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAMpC,eAAO,MAAM,SAAS,iBAAkB,YAAY,UAAU,MAAM,WAYnE,CAAA;AAED,eAAO,MAAM,eAAe,aAAc,MAAM,EAAE,uBAwBjD,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAIpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI1C,eAAO,MAAM,SAAS,iBAAkB,YAAY,UAAU,MAAM,WAYnE,CAAA;AAED,eAAO,MAAM,eAAe,aAAc,MAAM,EAAE,KAAG,WA6BpD,CAAA"}
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  "@xylabs/react-shared": "next",
15
15
  "@xyo-network/module": "next",
16
16
  "@xyo-network/node": "next",
17
- "@xyo-network/react-shared": "^2.48.0-rc.1",
17
+ "@xyo-network/react-shared": "^2.48.0-rc.3",
18
18
  "cytoscape": "^3.23.0"
19
19
  },
20
20
  "peerDependencies": {
@@ -38,9 +38,10 @@
38
38
  "@xyo-network/id-plugin": "next",
39
39
  "@xyo-network/module": "next",
40
40
  "@xyo-network/node": "next",
41
- "@xyo-network/react-node": "^2.48.0-rc.1",
42
- "@xyo-network/react-storybook": "^2.48.0-rc.1",
43
- "@xyo-network/react-wallet": "^2.48.0-rc.1",
41
+ "@xyo-network/react-node": "^2.48.0-rc.3",
42
+ "@xyo-network/react-storybook": "^2.48.0-rc.3",
43
+ "@xyo-network/react-wallet": "^2.48.0-rc.3",
44
+ "@xyo-network/sentinel": "next",
44
45
  "require-from-string": "^2.0.2",
45
46
  "typescript": "^4.9.5"
46
47
  },
@@ -87,6 +88,6 @@
87
88
  },
88
89
  "sideEffects": false,
89
90
  "types": "dist/types/index.d.ts",
90
- "version": "2.48.0-rc.1",
91
+ "version": "2.48.0-rc.3",
91
92
  "stableVersion": "2.47.46"
92
93
  }
@@ -2,11 +2,12 @@ import BubbleChartRoundedIcon from '@mui/icons-material/BubbleChartRounded'
2
2
  import HubIcon from '@mui/icons-material/Hub'
3
3
  import Inventory2RoundedIcon from '@mui/icons-material/Inventory2Rounded'
4
4
  import QuestionMarkRoundedIcon from '@mui/icons-material/QuestionMarkRounded'
5
+ import TimerRoundedIcon from '@mui/icons-material/TimerRounded'
5
6
  import VisibilityRoundedIcon from '@mui/icons-material/VisibilityRounded'
6
7
  import { SvgIconTypeMap } from '@mui/material'
7
8
  import { OverridableComponent } from '@mui/material/OverridableComponent'
8
9
 
9
- export type CyNodeIcons = 'archivist' | 'diviner' | 'module' | 'node' | 'witness'
10
+ export type CyNodeIcons = 'archivist' | 'diviner' | 'module' | 'node' | 'witness' | 'sentinel'
10
11
 
11
12
  // eslint-disable-next-line @typescript-eslint/ban-types
12
13
  export const CyIconSet: Record<CyNodeIcons, OverridableComponent<SvgIconTypeMap<{}, 'svg'>>> = {
@@ -14,5 +15,6 @@ export const CyIconSet: Record<CyNodeIcons, OverridableComponent<SvgIconTypeMap<
14
15
  diviner: BubbleChartRoundedIcon,
15
16
  module: QuestionMarkRoundedIcon,
16
17
  node: HubIcon,
18
+ sentinel: TimerRoundedIcon,
17
19
  witness: VisibilityRoundedIcon,
18
20
  }
@@ -1,3 +1,4 @@
1
+ import { Button, ButtonGroup } from '@mui/material'
1
2
  import { ComponentStory, DecoratorFn, Meta } from '@storybook/react'
2
3
  import { useAsyncEffect } from '@xylabs/react-shared'
3
4
  import { HDWallet } from '@xyo-network/account'
@@ -8,6 +9,7 @@ import { MemoryNode, NodeConfigSchema, NodeWrapper } from '@xyo-network/node'
8
9
  import { NodeProvider, useModule, useProvidedWrappedNode } from '@xyo-network/react-node'
9
10
  import { DefaultSeedPhrase } from '@xyo-network/react-storybook'
10
11
  import { WalletProvider } from '@xyo-network/react-wallet'
12
+ import { MemorySentinel, SentinelConfigSchema } from '@xyo-network/sentinel'
11
13
  import { useMemo, useState } from 'react'
12
14
 
13
15
  import { useCytoscapeElements, useCytoscapeOptions } from '../hooks'
@@ -23,30 +25,34 @@ export const MemoryNodeDecorator: DecoratorFn = (Story, args) => {
23
25
  useAsyncEffect(
24
26
  // eslint-disable-next-line react-hooks/exhaustive-deps
25
27
  async () => {
26
- const node = await MemoryNode.create({ config: { name: 'GlobalNode', schema: NodeConfigSchema } })
27
- const node1 = await MemoryNode.create({ config: { name: 'ChildNode', schema: NodeConfigSchema } })
28
- const bridge = await HttpBridge.create({
29
- config: { name: 'Bridge', nodeUrl, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },
30
- })
31
- await node.register(bridge)
32
- await node.attach(bridge.address, true)
33
-
34
- const archivist = await MemoryArchivist.create({ config: { name: 'RootStorageArchivist', schema: ArchivistConfigSchema } })
35
- await node.register(archivist)
36
- await node.attach(archivist.address, true)
37
-
38
- const archivist1 = await MemoryArchivist.create({ config: { name: 'RootStorageArchivist1', schema: ArchivistConfigSchema } })
39
- await node1.register(archivist1)
40
- await node1.attach(archivist1.address, true)
41
-
42
- const witnessModule = await IdWitness.create({ config: { name: 'IdWitness', salt: 'test', schema: IdWitnessConfigSchema } })
43
- await node1.register(witnessModule)
44
- await node1.attach(witnessModule.address, true)
45
-
46
- await node.register(node1)
47
- await node.attach(node1.address, true)
48
-
49
- setNode(node)
28
+ try {
29
+ const node = await MemoryNode.create({ config: { name: 'GlobalNode', schema: NodeConfigSchema } })
30
+ const node1 = await MemoryNode.create({ config: { name: 'ChildNode', schema: NodeConfigSchema } })
31
+ const bridge = await HttpBridge.create({
32
+ config: { name: 'Bridge', nodeUrl, schema: HttpBridgeConfigSchema, security: { allowAnonymous: true } },
33
+ })
34
+ await node.register(bridge)
35
+ await node.attach(bridge.address, true)
36
+
37
+ const archivist = await MemoryArchivist.create({ config: { name: 'RootStorageArchivist', schema: ArchivistConfigSchema } })
38
+ await node.register(archivist)
39
+ await node.attach(archivist.address, true)
40
+
41
+ const sentinel = await MemorySentinel.create({ config: { name: 'MemorySentinel', schema: SentinelConfigSchema } })
42
+ await node.register(sentinel)
43
+ await node.attach(sentinel.address, true)
44
+
45
+ const archivist1 = await MemoryArchivist.create({ config: { name: 'RootStorageArchivist1', schema: ArchivistConfigSchema } })
46
+ await node1.register(archivist1)
47
+ await node1.attach(archivist1.address, true)
48
+
49
+ await node.register(node1)
50
+ await node.attach(node1.address, true)
51
+
52
+ setNode(node)
53
+ } catch (e) {
54
+ console.error('Error Creating MemoryNode', e)
55
+ }
50
56
  },
51
57
  [],
52
58
  )
@@ -83,6 +89,48 @@ const TemplateCustomAddress: ComponentStory<typeof NodeRelationalGraph> = (props
83
89
  return <NodeRelationalGraph options={options} {...props} />
84
90
  }
85
91
 
92
+ const TemplateAttachDetach: ComponentStory<typeof NodeRelationalGraph> = (props) => {
93
+ const [node] = useModule('ChildNode')
94
+ const wrappedNode = useMemo(() => (node ? NodeWrapper.wrap(node) : undefined), [node])
95
+ const elements = useCytoscapeElements(wrappedNode)
96
+ const options = useCytoscapeOptions(elements)
97
+ const [idWitness, setIdWitness] = useState<IdWitness>()
98
+
99
+ useAsyncEffect(
100
+ // eslint-disable-next-line react-hooks/exhaustive-deps
101
+ async () => {
102
+ const witnessModule = await IdWitness.create({ config: { name: 'IdWitness', salt: 'test', schema: IdWitnessConfigSchema } })
103
+ setIdWitness(witnessModule)
104
+ },
105
+ [],
106
+ )
107
+
108
+ const handleAddWitness = async () => {
109
+ if (wrappedNode && idWitness) {
110
+ const memoryNode = wrappedNode as NodeWrapper<MemoryNode>
111
+ await memoryNode.module.register(idWitness)
112
+ await memoryNode.attach(idWitness.address, true)
113
+ }
114
+ }
115
+
116
+ const handleRemoveWitness = async () => {
117
+ if (wrappedNode && idWitness) {
118
+ const memoryNode = wrappedNode as NodeWrapper<MemoryNode>
119
+ await memoryNode.module.unregister(idWitness)
120
+ }
121
+ }
122
+
123
+ return (
124
+ <>
125
+ <ButtonGroup>
126
+ <Button onClick={handleAddWitness}>Add Witness</Button>
127
+ <Button onClick={handleRemoveWitness}>Remove Witness</Button>
128
+ </ButtonGroup>
129
+ <NodeRelationalGraph options={options} {...props} />
130
+ </>
131
+ )
132
+ }
133
+
86
134
  const defaultProps = {
87
135
  height: 'calc(100vh - 20px)',
88
136
  width: '100%',
@@ -102,4 +150,8 @@ const WithCustomAddress = TemplateCustomAddress.bind({})
102
150
  WithCustomAddress.args = { ...defaultProps }
103
151
  WithCustomAddress.decorators = [MemoryNodeDecorator]
104
152
 
105
- export { Default, WithCustomAddress, WithData, WithDescribe }
153
+ const WithAttachDetach = TemplateAttachDetach.bind({})
154
+ WithAttachDetach.args = { ...defaultProps }
155
+ WithAttachDetach.decorators = [MemoryNodeDecorator]
156
+
157
+ export { Default, WithAttachDetach, WithCustomAddress, WithData, WithDescribe }
@@ -1,7 +1,8 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared'
2
+ import { EventUnsubscribeFunction } from '@xyo-network/module'
2
3
  import { NodeWrapper } from '@xyo-network/node'
3
4
  import { ElementDefinition } from 'cytoscape'
4
- import { useState } from 'react'
5
+ import { useCallback, useEffect, useState } from 'react'
5
6
 
6
7
  import { CytoscapeElements } from '../../Cytoscape'
7
8
 
@@ -12,36 +13,59 @@ import { CytoscapeElements } from '../../Cytoscape'
12
13
  export const useCytoscapeElements = (targetNode?: NodeWrapper) => {
13
14
  const [elements, setElements] = useState<ElementDefinition[]>([])
14
15
 
16
+ const buildElements = useCallback(async (wrapper: NodeWrapper) => {
17
+ try {
18
+ const [description, newRootNode] = await CytoscapeElements.buildRootNode(wrapper)
19
+ const newElements = [newRootNode]
20
+
21
+ const children = description.children
22
+ await Promise.allSettled(
23
+ (children ?? [])?.map(async (address) => {
24
+ try {
25
+ const newNode = await CytoscapeElements.buildChild(wrapper, address)
26
+ newElements.push(newNode)
27
+
28
+ const newEdge = CytoscapeElements.buildEdge(newRootNode, newNode)
29
+ newElements.push(newEdge)
30
+ } catch (e) {
31
+ console.error('Error parsing children', e)
32
+ }
33
+ }),
34
+ )
35
+ setElements(newElements)
36
+ } catch (e) {
37
+ console.error('Error Getting initial description', e)
38
+ }
39
+ }, [])
40
+
15
41
  useAsyncEffect(
16
42
  // eslint-disable-next-line react-hooks/exhaustive-deps
17
43
  async () => {
18
44
  if (targetNode) {
19
- try {
20
- const [description, newRootNode] = await CytoscapeElements.buildRootNode(targetNode)
21
- const newElements = [newRootNode]
22
-
23
- const children = description.children
24
- await Promise.allSettled(
25
- (children ?? [])?.map(async (address) => {
26
- try {
27
- const newNode = await CytoscapeElements.buildChild(targetNode, address)
28
- newElements.push(newNode)
29
-
30
- const newEdge = CytoscapeElements.buildEdge(newRootNode, newNode)
31
- newElements.push(newEdge)
32
- } catch (e) {
33
- console.error('Error parsing children', e)
34
- }
35
- }),
36
- )
37
- setElements(newElements)
38
- } catch (e) {
39
- console.error('Error Getting initial description', e)
40
- }
45
+ await buildElements(targetNode)
41
46
  }
42
47
  },
43
- [targetNode],
48
+ [buildElements, targetNode],
44
49
  )
45
50
 
51
+ useEffect(() => {
52
+ let attachedListener: EventUnsubscribeFunction | undefined = undefined
53
+ let detachedListener: EventUnsubscribeFunction | undefined = undefined
54
+
55
+ if (targetNode) {
56
+ attachedListener = targetNode.on('moduleAttached', async () => {
57
+ await buildElements(targetNode)
58
+ })
59
+ detachedListener = targetNode.on('moduleDetached', async () => {
60
+ await buildElements(targetNode)
61
+ })
62
+ }
63
+
64
+ return () => {
65
+ attachedListener?.()
66
+ detachedListener?.()
67
+ }
68
+ }, [buildElements, targetNode])
69
+
46
70
  return elements
47
71
  }
@@ -7,7 +7,7 @@ import { encodeSvg } from '../../lib'
7
7
  export const useIcons = () => {
8
8
  const theme = useTheme()
9
9
  const icons = useMemo(() => {
10
- const iconMap: Record<CyNodeIcons, string> = { archivist: '', diviner: '', module: '', node: '', witness: '' }
10
+ const iconMap: Record<CyNodeIcons, string> = { archivist: '', diviner: '', module: '', node: '', sentinel: '', witness: '' }
11
11
  return Object.entries(CyIconSet).reduce((acc, [name, IconComponent]) => {
12
12
  const icon = <IconComponent fontSize="small" />
13
13
  acc[name as CyNodeIcons] = encodeSvg(icon, theme.palette.getContrastText(theme.palette.text.primary))
package/src/lib/utils.ts CHANGED
@@ -2,6 +2,8 @@ import { ReactElement } from 'react'
2
2
  // eslint-disable-next-line import/no-internal-modules
3
3
  import { renderToStaticMarkup } from 'react-dom/server'
4
4
 
5
+ import { CyNodeIcons } from '../Cytoscape'
6
+
5
7
  const dataUri = 'data:image/svg+xml,'
6
8
 
7
9
  export const encodeSvg = (reactElement: ReactElement, color?: string) => {
@@ -18,8 +20,8 @@ export const encodeSvg = (reactElement: ReactElement, color?: string) => {
18
20
  return `${dataUri}${window.encodeURIComponent(svgElement.outerHTML)}`
19
21
  }
20
22
 
21
- export const parseModuleType = (queries?: string[]) => {
22
- let type
23
+ export const parseModuleType = (queries?: string[]): CyNodeIcons => {
24
+ let type: CyNodeIcons = 'module'
23
25
  if (queries) {
24
26
  for (let i = 0; i < queries.length; i++) {
25
27
  if (queries[i].includes('archivist')) {
@@ -34,6 +36,10 @@ export const parseModuleType = (queries?: string[]) => {
34
36
  type = 'node'
35
37
  break
36
38
  }
39
+ if (queries[i].includes('sentinel')) {
40
+ type = 'sentinel'
41
+ break
42
+ }
37
43
  if (queries[i].includes('witness')) {
38
44
  type = 'witness'
39
45
  break
@@ -42,4 +48,5 @@ export const parseModuleType = (queries?: string[]) => {
42
48
  }
43
49
  return type
44
50
  }
51
+ return 'module'
45
52
  }