@xyo-network/react-node-renderer 2.48.0 → 2.48.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Cytoscape/CytoscapeElements.js +33 -6
- package/dist/cjs/Cytoscape/CytoscapeElements.js.map +1 -1
- package/dist/cjs/Cytoscape/CytoscapeIcons.js +2 -0
- package/dist/cjs/Cytoscape/CytoscapeIcons.js.map +1 -1
- package/dist/cjs/Cytoscape/CytoscapeStyles.js.map +1 -1
- package/dist/cjs/Cytoscape/index.js +1 -0
- package/dist/cjs/Cytoscape/index.js.map +1 -1
- package/dist/cjs/Cytoscape/lib/CyNodeModuleTypes.js +3 -0
- package/dist/cjs/Cytoscape/lib/CyNodeModuleTypes.js.map +1 -0
- package/dist/cjs/Cytoscape/lib/encodeSvg.js +19 -0
- package/dist/cjs/Cytoscape/lib/encodeSvg.js.map +1 -0
- package/dist/cjs/Cytoscape/lib/iconMap.js +14 -0
- package/dist/cjs/Cytoscape/lib/iconMap.js.map +1 -0
- package/dist/cjs/Cytoscape/lib/index.js +8 -0
- package/dist/cjs/Cytoscape/lib/index.js.map +1 -0
- package/dist/cjs/{lib/utils.js → Cytoscape/lib/parseModuleType.js} +6 -17
- package/dist/cjs/Cytoscape/lib/parseModuleType.js.map +1 -0
- package/dist/cjs/hooks/cytoscape/useCytoscapeElements.js +11 -28
- package/dist/cjs/hooks/cytoscape/useCytoscapeElements.js.map +1 -1
- package/dist/cjs/hooks/cytoscape/useIcons.js +2 -3
- package/dist/cjs/hooks/cytoscape/useIcons.js.map +1 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +442 -136
- package/dist/esm/Cytoscape/CytoscapeElements.js +25 -3
- package/dist/esm/Cytoscape/CytoscapeElements.js.map +1 -1
- package/dist/esm/Cytoscape/CytoscapeIcons.js +2 -0
- package/dist/esm/Cytoscape/CytoscapeIcons.js.map +1 -1
- package/dist/esm/Cytoscape/CytoscapeStyles.js.map +1 -1
- package/dist/esm/Cytoscape/index.js +1 -0
- package/dist/esm/Cytoscape/index.js.map +1 -1
- package/dist/esm/Cytoscape/lib/CyNodeModuleTypes.js +2 -0
- package/dist/esm/Cytoscape/lib/CyNodeModuleTypes.js.map +1 -0
- package/dist/esm/Cytoscape/lib/encodeSvg.js +15 -0
- package/dist/esm/Cytoscape/lib/encodeSvg.js.map +1 -0
- package/dist/esm/Cytoscape/lib/iconMap.js +10 -0
- package/dist/esm/Cytoscape/lib/iconMap.js.map +1 -0
- package/dist/esm/Cytoscape/lib/index.js +5 -0
- package/dist/esm/Cytoscape/lib/index.js.map +1 -0
- package/dist/esm/{lib/utils.js → Cytoscape/lib/parseModuleType.js} +5 -15
- package/dist/esm/Cytoscape/lib/parseModuleType.js.map +1 -0
- package/dist/esm/hooks/cytoscape/useCytoscapeElements.js +9 -28
- package/dist/esm/hooks/cytoscape/useCytoscapeElements.js.map +1 -1
- package/dist/esm/hooks/cytoscape/useIcons.js +2 -3
- package/dist/esm/hooks/cytoscape/useIcons.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/types/Cytoscape/CytoscapeElements.d.ts +2 -1
- package/dist/types/Cytoscape/CytoscapeElements.d.ts.map +1 -1
- package/dist/types/Cytoscape/CytoscapeIcons.d.ts +2 -2
- package/dist/types/Cytoscape/CytoscapeIcons.d.ts.map +1 -1
- package/dist/types/Cytoscape/CytoscapeStyles.d.ts +2 -2
- package/dist/types/Cytoscape/CytoscapeStyles.d.ts.map +1 -1
- package/dist/types/Cytoscape/index.d.ts +1 -0
- package/dist/types/Cytoscape/index.d.ts.map +1 -1
- package/dist/types/Cytoscape/lib/CyNodeModuleTypes.d.ts +2 -0
- package/dist/types/Cytoscape/lib/CyNodeModuleTypes.d.ts.map +1 -0
- package/dist/types/Cytoscape/lib/encodeSvg.d.ts +3 -0
- package/dist/types/Cytoscape/lib/encodeSvg.d.ts.map +1 -0
- package/dist/types/Cytoscape/lib/iconMap.d.ts +3 -0
- package/dist/types/Cytoscape/lib/iconMap.d.ts.map +1 -0
- package/dist/types/Cytoscape/lib/index.d.ts +5 -0
- package/dist/types/Cytoscape/lib/index.d.ts.map +1 -0
- package/dist/types/Cytoscape/lib/parseModuleType.d.ts +3 -0
- package/dist/types/Cytoscape/lib/parseModuleType.d.ts.map +1 -0
- package/dist/types/hooks/cytoscape/useCytoscapeElements.d.ts.map +1 -1
- package/dist/types/hooks/cytoscape/useIcons.d.ts +2 -2
- package/dist/types/hooks/cytoscape/useIcons.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/Cytoscape/CytoscapeElements.ts +27 -2
- package/src/Cytoscape/CytoscapeIcons.tsx +4 -2
- package/src/Cytoscape/CytoscapeStyles.ts +3 -3
- package/src/Cytoscape/index.ts +1 -0
- package/src/Cytoscape/lib/CyNodeModuleTypes.ts +1 -0
- package/src/Cytoscape/lib/encodeSvg.ts +19 -0
- package/src/Cytoscape/lib/iconMap.ts +11 -0
- package/src/Cytoscape/lib/index.ts +4 -0
- package/src/Cytoscape/lib/parseModuleType.ts +36 -0
- package/src/components/RelationalGraph.stories.tsx +3 -1
- package/src/hooks/cytoscape/useCytoscapeElements.ts +9 -31
- package/src/hooks/cytoscape/useIcons.tsx +3 -4
- package/src/index.ts +0 -1
- package/dist/cjs/lib/index.js +0 -5
- package/dist/cjs/lib/index.js.map +0 -1
- package/dist/cjs/lib/utils.js.map +0 -1
- package/dist/esm/lib/index.js +0 -2
- package/dist/esm/lib/index.js.map +0 -1
- package/dist/esm/lib/utils.js.map +0 -1
- package/dist/types/lib/index.d.ts +0 -2
- package/dist/types/lib/index.d.ts.map +0 -1
- package/dist/types/lib/utils.d.ts +0 -5
- package/dist/types/lib/utils.d.ts.map +0 -1
- package/src/lib/index.ts +0 -1
- package/src/lib/utils.ts +0 -52
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ModuleWrapper } from '@xyo-network/module';
|
|
2
|
-
import { parseModuleType } from '
|
|
2
|
+
import { parseModuleType } from './lib';
|
|
3
3
|
export class CytoscapeElements {
|
|
4
4
|
static MaxNameLength = 20;
|
|
5
|
-
static
|
|
5
|
+
static async buildChild(wrapper, address) {
|
|
6
6
|
const [result] = await wrapper.resolveWrapped(ModuleWrapper, { address: [address] });
|
|
7
7
|
const description = await result.describe();
|
|
8
8
|
return CytoscapeElements.buildNode(description);
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
10
|
static buildEdge(rootNode, newNode) {
|
|
11
11
|
return {
|
|
12
12
|
data: {
|
|
@@ -16,6 +16,28 @@ export class CytoscapeElements {
|
|
|
16
16
|
},
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
+
static async buildElements(wrapper) {
|
|
20
|
+
try {
|
|
21
|
+
const [description, newRootNode] = await CytoscapeElements.buildRootNode(wrapper);
|
|
22
|
+
const newElements = [newRootNode];
|
|
23
|
+
const children = description.children;
|
|
24
|
+
await Promise.allSettled((children ?? [])?.map(async (address) => {
|
|
25
|
+
try {
|
|
26
|
+
const newNode = await CytoscapeElements.buildChild(wrapper, address);
|
|
27
|
+
newElements.push(newNode);
|
|
28
|
+
const newEdge = CytoscapeElements.buildEdge(newRootNode, newNode);
|
|
29
|
+
newElements.push(newEdge);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
console.error('Error parsing children', e);
|
|
33
|
+
}
|
|
34
|
+
}));
|
|
35
|
+
return newElements;
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
console.error('Error Getting initial description', e);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
19
41
|
static buildNode(description) {
|
|
20
42
|
const newNodeId = CytoscapeElements.normalizeName(description.name) ?? description.address.substring(0, 8);
|
|
21
43
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CytoscapeElements.js","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAItE,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CytoscapeElements.js","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeElements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import BubbleChartRoundedIcon from '@mui/icons-material/BubbleChartRounded';
|
|
2
2
|
import HubIcon from '@mui/icons-material/Hub';
|
|
3
|
+
import InsertLinkRoundedIcon from '@mui/icons-material/InsertLinkRounded';
|
|
3
4
|
import Inventory2RoundedIcon from '@mui/icons-material/Inventory2Rounded';
|
|
4
5
|
import QuestionMarkRoundedIcon from '@mui/icons-material/QuestionMarkRounded';
|
|
5
6
|
import TimerRoundedIcon from '@mui/icons-material/TimerRounded';
|
|
@@ -7,6 +8,7 @@ import VisibilityRoundedIcon from '@mui/icons-material/VisibilityRounded';
|
|
|
7
8
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
8
9
|
export const CyIconSet = {
|
|
9
10
|
archivist: Inventory2RoundedIcon,
|
|
11
|
+
bridge: InsertLinkRoundedIcon,
|
|
10
12
|
diviner: BubbleChartRoundedIcon,
|
|
11
13
|
module: QuestionMarkRoundedIcon,
|
|
12
14
|
node: HubIcon,
|
|
@@ -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,gBAAgB,MAAM,kCAAkC,CAAA;AAC/D,OAAO,qBAAqB,MAAM,uCAAuC,CAAA;AAMzE,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,
|
|
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,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,GAA+E;IACnG,SAAS,EAAE,qBAAqB;IAChC,MAAM,EAAE,qBAAqB;IAC7B,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CytoscapeStyles.js","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeStyles.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAc,EAAE,CAAC,CAAC;IAC3D,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE;QACL,KAAK;QACL,aAAa,EAAE,oCAAoC;QACnD,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,CAAC,CAAC;KACpB;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"CytoscapeStyles.js","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeStyles.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAc,EAAE,CAAC,CAAC;IAC3D,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE;QACL,KAAK;QACL,aAAa,EAAE,oCAAoC;QACnD,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,CAAC,CAAC;KACpB;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAwC,EAAE,OAAgB,EAAc,EAAE,CAAC,CAAC;IACrG,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE;QACL,kBAAkB,EAAE,OAAO;QAC3B,mBAAmB,EAAE,KAAK;QAC1B,sBAAsB;QACtB,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAsB,CAAC;QAC3E,4BAA4B,EAAE,KAAK;QACnC,kBAAkB,EAAE,KAAK;QACzB,KAAK,EAAE,UAAU;KAClB;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAkB,EAAE,gBAAyB,EAAE,EAAE,CAAC,CAAC;IAC5E,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE;QACL,aAAa,EAAE,QAAQ;QACvB,YAAY,EAAE,SAAS;QACvB,cAAc,EAAE,GAAG;QACnB,oBAAoB,EAAE,gBAAgB;QACtC,oBAAoB,EAAE,UAAU;QAChC,KAAK,EAAE,CAAC;KACT;CACF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cytoscape/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cytoscape/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CyNodeModuleTypes.js","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/CyNodeModuleTypes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-internal-modules
|
|
2
|
+
import { renderToStaticMarkup } from 'react-dom/server';
|
|
3
|
+
const dataUri = 'data:image/svg+xml,';
|
|
4
|
+
export const encodeSvg = (reactElement, color) => {
|
|
5
|
+
const svgString = renderToStaticMarkup(reactElement);
|
|
6
|
+
const doc = new DOMParser().parseFromString(svgString, 'text/html');
|
|
7
|
+
const svgElement = doc.getElementsByTagName('svg')[0];
|
|
8
|
+
if (svgElement) {
|
|
9
|
+
svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
|
|
10
|
+
svgElement.setAttribute('height', '100');
|
|
11
|
+
svgElement.style.fill = color ?? 'black';
|
|
12
|
+
}
|
|
13
|
+
return `${dataUri}${window.encodeURIComponent(svgElement.outerHTML)}`;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=encodeSvg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encodeSvg.js","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/encodeSvg.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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iconMap.js","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/iconMap.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAA4C,GAAG,EAAE,CAAC,CAAC;IAC7E,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;CACZ,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA"}
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
2
|
-
import { renderToStaticMarkup } from 'react-dom/server';
|
|
3
|
-
const dataUri = 'data:image/svg+xml,';
|
|
4
|
-
export const encodeSvg = (reactElement, color) => {
|
|
5
|
-
const svgString = renderToStaticMarkup(reactElement);
|
|
6
|
-
const doc = new DOMParser().parseFromString(svgString, 'text/html');
|
|
7
|
-
const svgElement = doc.getElementsByTagName('svg')[0];
|
|
8
|
-
if (svgElement) {
|
|
9
|
-
svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
|
|
10
|
-
svgElement.setAttribute('height', '100');
|
|
11
|
-
svgElement.style.fill = color ?? 'black';
|
|
12
|
-
}
|
|
13
|
-
return `${dataUri}${window.encodeURIComponent(svgElement.outerHTML)}`;
|
|
14
|
-
};
|
|
15
1
|
export const parseModuleType = (queries) => {
|
|
16
2
|
let type = 'module';
|
|
17
3
|
if (queries) {
|
|
@@ -20,6 +6,10 @@ export const parseModuleType = (queries) => {
|
|
|
20
6
|
type = 'archivist';
|
|
21
7
|
break;
|
|
22
8
|
}
|
|
9
|
+
if (queries[i].includes('bridge')) {
|
|
10
|
+
type = 'bridge';
|
|
11
|
+
break;
|
|
12
|
+
}
|
|
23
13
|
if (queries[i].includes('diviner')) {
|
|
24
14
|
type = 'diviner';
|
|
25
15
|
break;
|
|
@@ -42,4 +32,4 @@ export const parseModuleType = (queries) => {
|
|
|
42
32
|
}
|
|
43
33
|
return 'module';
|
|
44
34
|
};
|
|
45
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=parseModuleType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseModuleType.js","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/parseModuleType.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAkB,EAAqB,EAAE;IACvE,IAAI,IAAI,GAAsB,QAAQ,CAAA;IACtC,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,QAAQ,CAAC,EAAE;gBACjC,IAAI,GAAG,QAAQ,CAAA;gBACf,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 { useAsyncEffect } from '@xylabs/react-shared';
|
|
2
|
-
import {
|
|
2
|
+
import { 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,51 +7,32 @@ 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
|
-
}, []);
|
|
32
10
|
useAsyncEffect(
|
|
33
11
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
34
12
|
async () => {
|
|
35
13
|
if (targetNode) {
|
|
36
|
-
await buildElements(targetNode);
|
|
14
|
+
const newElements = (await CytoscapeElements.buildElements(targetNode)) ?? [];
|
|
15
|
+
setElements(newElements);
|
|
37
16
|
}
|
|
38
|
-
}, [
|
|
17
|
+
}, [targetNode]);
|
|
39
18
|
useEffect(() => {
|
|
40
19
|
let attachedListener = undefined;
|
|
41
20
|
let detachedListener = undefined;
|
|
42
21
|
if (targetNode) {
|
|
43
22
|
attachedListener = targetNode.on('moduleAttached', async () => {
|
|
44
|
-
await buildElements(targetNode);
|
|
23
|
+
const newElements = (await CytoscapeElements.buildElements(targetNode)) ?? [];
|
|
24
|
+
setElements(newElements);
|
|
45
25
|
});
|
|
46
26
|
detachedListener = targetNode.on('moduleDetached', async () => {
|
|
47
|
-
await buildElements(targetNode);
|
|
27
|
+
const newElements = (await CytoscapeElements.buildElements(targetNode)) ?? [];
|
|
28
|
+
setElements(newElements);
|
|
48
29
|
});
|
|
49
30
|
}
|
|
50
31
|
return () => {
|
|
51
32
|
attachedListener?.();
|
|
52
33
|
detachedListener?.();
|
|
53
34
|
};
|
|
54
|
-
}, [
|
|
35
|
+
}, [targetNode]);
|
|
55
36
|
return elements;
|
|
56
37
|
};
|
|
57
38
|
//# 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;AAIrD,OAAO,EAAE,
|
|
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,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,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,MAAM,WAAW,GAAG,CAAC,MAAM,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;YAC7E,WAAW,CAAC,WAAW,CAAC,CAAA;SACzB;IACH,CAAC,EACD,CAAC,UAAU,CAAC,CACb,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,WAAW,GAAG,CAAC,MAAM,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC7E,WAAW,CAAC,WAAW,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;YACF,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAC5D,MAAM,WAAW,GAAG,CAAC,MAAM,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC7E,WAAW,CAAC,WAAW,CAAC,CAAA;YAC1B,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,UAAU,CAAC,CAAC,CAAA;IAEhB,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useTheme } from '@mui/material';
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
|
-
import { CyIconSet } from '../../Cytoscape';
|
|
5
|
-
import { encodeSvg } from '../../lib';
|
|
4
|
+
import { CyIconSet, encodeSvg, generateIconMap } from '../../Cytoscape';
|
|
6
5
|
export const useIcons = () => {
|
|
7
6
|
const theme = useTheme();
|
|
8
7
|
const icons = useMemo(() => {
|
|
9
|
-
const iconMap =
|
|
8
|
+
const iconMap = generateIconMap();
|
|
10
9
|
return Object.entries(CyIconSet).reduce((acc, [name, IconComponent]) => {
|
|
11
10
|
const icon = _jsx(IconComponent, { fontSize: "small" });
|
|
12
11
|
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,
|
|
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,EAAqB,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE1F,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,GAAG,eAAe,EAAE,CAAA;QACjC,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,IAAyB,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YAC3G,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"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { NodeWrapper } from '@xyo-network/node';
|
|
|
3
3
|
import { ElementDefinition } from 'cytoscape';
|
|
4
4
|
export declare class CytoscapeElements {
|
|
5
5
|
static MaxNameLength: number;
|
|
6
|
-
static buildChild
|
|
6
|
+
static buildChild(wrapper: NodeWrapper, address: string): Promise<ElementDefinition>;
|
|
7
7
|
static buildEdge(rootNode: ElementDefinition, newNode: ElementDefinition): {
|
|
8
8
|
data: {
|
|
9
9
|
id: string;
|
|
@@ -11,6 +11,7 @@ export declare class CytoscapeElements {
|
|
|
11
11
|
target: string | undefined;
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
|
+
static buildElements(wrapper: NodeWrapper): Promise<ElementDefinition[] | undefined>;
|
|
14
15
|
static buildNode(description: ModuleDescription): ElementDefinition;
|
|
15
16
|
static buildRootNode: (wrapper: NodeWrapper) => Promise<[ModuleDescription, ElementDefinition]>;
|
|
16
17
|
static normalizeName(name?: string): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CytoscapeElements.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAI7C,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,aAAa,SAAK;
|
|
1
|
+
{"version":3,"file":"CytoscapeElements.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAI7C,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,aAAa,SAAK;WAEZ,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IAM7D,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB;;;;;;;WAU3D,aAAa,CAAC,OAAO,EAAE,WAAW;IAyB/C,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,iBAAiB,GAAG,iBAAiB;IAWnE,MAAM,CAAC,aAAa,YAAmB,WAAW,KAAG,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAGnG;IAED,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM;CAKnC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SvgIconTypeMap } from '@mui/material';
|
|
2
2
|
import { OverridableComponent } from '@mui/material/OverridableComponent';
|
|
3
|
-
|
|
4
|
-
export declare const CyIconSet: Record<
|
|
3
|
+
import { CyNodeModuleTypes } from './lib';
|
|
4
|
+
export declare const CyIconSet: Record<CyNodeModuleTypes, 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":"
|
|
1
|
+
{"version":3,"file":"CytoscapeIcons.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeIcons.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAGzC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAQhG,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Stylesheet } from 'cytoscape';
|
|
2
|
-
import {
|
|
2
|
+
import { CyNodeModuleTypes } from './lib';
|
|
3
3
|
export declare const NodeIdStyles: (color?: string) => Stylesheet;
|
|
4
|
-
export declare const NodeStyled: (icons: Record<
|
|
4
|
+
export declare const NodeStyled: (icons: Record<CyNodeModuleTypes, string>, bgColor?: string) => Stylesheet;
|
|
5
5
|
export declare const EdgeStyled: (lineColor?: string, targetArrowColor?: string) => {
|
|
6
6
|
selector: string;
|
|
7
7
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CytoscapeStyles.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CytoscapeStyles.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/CytoscapeStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAEzC,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,UAQ5C,CAAA;AAEF,eAAO,MAAM,UAAU,UAAW,OAAO,iBAAiB,EAAE,MAAM,CAAC,YAAY,MAAM,KAAG,UAWtF,CAAA;AAEF,eAAO,MAAM,UAAU,eAAgB,MAAM,qBAAqB,MAAM;;;;;;;;;;CAUtE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cytoscape/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CyNodeModuleTypes.d.ts","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/CyNodeModuleTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encodeSvg.d.ts","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/encodeSvg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAMpC,eAAO,MAAM,SAAS,iBAAkB,YAAY,UAAU,MAAM,WAYnE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iconMap.d.ts","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/iconMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,eAAO,MAAM,eAAe,EAAE,MAAM,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAQlE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseModuleType.d.ts","sourceRoot":"","sources":["../../../../src/Cytoscape/lib/parseModuleType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,eAAO,MAAM,eAAe,aAAc,MAAM,EAAE,KAAG,iBAiCpD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,wBAoC5D,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const useIcons: () => Record<
|
|
1
|
+
import { CyNodeModuleTypes } from '../../Cytoscape';
|
|
2
|
+
export declare const useIcons: () => Record<CyNodeModuleTypes, string>;
|
|
3
3
|
//# sourceMappingURL=useIcons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIcons.d.ts","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useIcons.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,
|
|
1
|
+
{"version":3,"file":"useIcons.d.ts","sourceRoot":"","sources":["../../../../src/hooks/cytoscape/useIcons.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,iBAAiB,EAA8B,MAAM,iBAAiB,CAAA;AAE1F,eAAO,MAAM,QAAQ,yCAYpB,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
|
package/package.json
CHANGED
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/react-flexbox": "^2.
|
|
13
|
+
"@xylabs/react-flexbox": "^2.17.0",
|
|
14
14
|
"@xylabs/react-shared": "^2.17.0",
|
|
15
15
|
"@xyo-network/module": "^2.55.0",
|
|
16
16
|
"@xyo-network/node": "^2.55.0",
|
|
17
|
-
"@xyo-network/react-shared": "^2.48.
|
|
17
|
+
"@xyo-network/react-shared": "^2.48.2",
|
|
18
18
|
"cytoscape": "^3.23.0"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
@@ -30,17 +30,17 @@
|
|
|
30
30
|
"@storybook/react": "^6.5.16",
|
|
31
31
|
"@types/cytoscape": "^3.19.9",
|
|
32
32
|
"@types/react-dom": "^18.0.11",
|
|
33
|
-
"@xylabs/ts-scripts-yarn3": "^2.16.
|
|
34
|
-
"@xylabs/tsconfig-react": "^2.16.
|
|
33
|
+
"@xylabs/ts-scripts-yarn3": "^2.16.5",
|
|
34
|
+
"@xylabs/tsconfig-react": "^2.16.5",
|
|
35
35
|
"@xyo-network/account": "^2.55.0",
|
|
36
36
|
"@xyo-network/archivist": "^2.55.0",
|
|
37
37
|
"@xyo-network/bridge": "^2.55.0",
|
|
38
38
|
"@xyo-network/id-plugin": "^2.55.0",
|
|
39
39
|
"@xyo-network/module": "^2.55.0",
|
|
40
40
|
"@xyo-network/node": "^2.55.0",
|
|
41
|
-
"@xyo-network/react-node": "^2.48.
|
|
42
|
-
"@xyo-network/react-storybook": "^2.48.
|
|
43
|
-
"@xyo-network/react-wallet": "^2.48.
|
|
41
|
+
"@xyo-network/react-node": "^2.48.2",
|
|
42
|
+
"@xyo-network/react-storybook": "^2.48.2",
|
|
43
|
+
"@xyo-network/react-wallet": "^2.48.2",
|
|
44
44
|
"@xyo-network/sentinel": "^2.55.0",
|
|
45
45
|
"require-from-string": "^2.0.2",
|
|
46
46
|
"typescript": "^4.9.5"
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
},
|
|
89
89
|
"sideEffects": false,
|
|
90
90
|
"types": "dist/types/index.d.ts",
|
|
91
|
-
"version": "2.48.
|
|
91
|
+
"version": "2.48.2"
|
|
92
92
|
}
|
|
@@ -2,12 +2,12 @@ import { ModuleDescription, ModuleWrapper } from '@xyo-network/module'
|
|
|
2
2
|
import { NodeWrapper } from '@xyo-network/node'
|
|
3
3
|
import { ElementDefinition } from 'cytoscape'
|
|
4
4
|
|
|
5
|
-
import { parseModuleType } from '
|
|
5
|
+
import { parseModuleType } from './lib'
|
|
6
6
|
|
|
7
7
|
export class CytoscapeElements {
|
|
8
8
|
static MaxNameLength = 20
|
|
9
9
|
|
|
10
|
-
static
|
|
10
|
+
static async buildChild(wrapper: NodeWrapper, address: string) {
|
|
11
11
|
const [result] = await wrapper.resolveWrapped(ModuleWrapper, { address: [address] })
|
|
12
12
|
const description = await result.describe()
|
|
13
13
|
return CytoscapeElements.buildNode(description)
|
|
@@ -23,6 +23,31 @@ export class CytoscapeElements {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
static async buildElements(wrapper: NodeWrapper) {
|
|
27
|
+
try {
|
|
28
|
+
const [description, newRootNode] = await CytoscapeElements.buildRootNode(wrapper)
|
|
29
|
+
const newElements: ElementDefinition[] = [newRootNode]
|
|
30
|
+
|
|
31
|
+
const children = description.children
|
|
32
|
+
await Promise.allSettled(
|
|
33
|
+
(children ?? [])?.map(async (address) => {
|
|
34
|
+
try {
|
|
35
|
+
const newNode = await CytoscapeElements.buildChild(wrapper, address)
|
|
36
|
+
newElements.push(newNode)
|
|
37
|
+
|
|
38
|
+
const newEdge = CytoscapeElements.buildEdge(newRootNode, newNode)
|
|
39
|
+
newElements.push(newEdge)
|
|
40
|
+
} catch (e) {
|
|
41
|
+
console.error('Error parsing children', e)
|
|
42
|
+
}
|
|
43
|
+
}),
|
|
44
|
+
)
|
|
45
|
+
return newElements
|
|
46
|
+
} catch (e) {
|
|
47
|
+
console.error('Error Getting initial description', e)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
26
51
|
static buildNode(description: ModuleDescription): ElementDefinition {
|
|
27
52
|
const newNodeId = CytoscapeElements.normalizeName(description.name) ?? description.address.substring(0, 8)
|
|
28
53
|
return {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import BubbleChartRoundedIcon from '@mui/icons-material/BubbleChartRounded'
|
|
2
2
|
import HubIcon from '@mui/icons-material/Hub'
|
|
3
|
+
import InsertLinkRoundedIcon from '@mui/icons-material/InsertLinkRounded'
|
|
3
4
|
import Inventory2RoundedIcon from '@mui/icons-material/Inventory2Rounded'
|
|
4
5
|
import QuestionMarkRoundedIcon from '@mui/icons-material/QuestionMarkRounded'
|
|
5
6
|
import TimerRoundedIcon from '@mui/icons-material/TimerRounded'
|
|
@@ -7,11 +8,12 @@ import VisibilityRoundedIcon from '@mui/icons-material/VisibilityRounded'
|
|
|
7
8
|
import { SvgIconTypeMap } from '@mui/material'
|
|
8
9
|
import { OverridableComponent } from '@mui/material/OverridableComponent'
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
import { CyNodeModuleTypes } from './lib'
|
|
11
12
|
|
|
12
13
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
13
|
-
export const CyIconSet: Record<
|
|
14
|
+
export const CyIconSet: Record<CyNodeModuleTypes, OverridableComponent<SvgIconTypeMap<{}, 'svg'>>> = {
|
|
14
15
|
archivist: Inventory2RoundedIcon,
|
|
16
|
+
bridge: InsertLinkRoundedIcon,
|
|
15
17
|
diviner: BubbleChartRoundedIcon,
|
|
16
18
|
module: QuestionMarkRoundedIcon,
|
|
17
19
|
node: HubIcon,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Stylesheet } from 'cytoscape'
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { CyNodeModuleTypes } from './lib'
|
|
4
4
|
|
|
5
5
|
export const NodeIdStyles = (color?: string): Stylesheet => ({
|
|
6
6
|
selector: 'node[id]',
|
|
@@ -12,13 +12,13 @@ export const NodeIdStyles = (color?: string): Stylesheet => ({
|
|
|
12
12
|
},
|
|
13
13
|
})
|
|
14
14
|
|
|
15
|
-
export const NodeStyled = (icons: Record<
|
|
15
|
+
export const NodeStyled = (icons: Record<CyNodeModuleTypes, string>, bgColor?: string): Stylesheet => ({
|
|
16
16
|
selector: 'node',
|
|
17
17
|
style: {
|
|
18
18
|
'background-color': bgColor,
|
|
19
19
|
'background-height': '75%',
|
|
20
20
|
// TODO - make dynamic
|
|
21
|
-
'background-image': (elem) => icons[elem.data('type') as
|
|
21
|
+
'background-image': (elem) => icons[elem.data('type') as CyNodeModuleTypes],
|
|
22
22
|
'background-image-smoothing': 'yes',
|
|
23
23
|
'background-width': '75%',
|
|
24
24
|
label: 'data(id)',
|
package/src/Cytoscape/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type CyNodeModuleTypes = 'archivist' | 'bridge' | 'diviner' | 'module' | 'node' | 'witness' | 'sentinel'
|