@medicine-wheel/graph-viz 0.4.0 → 0.4.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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interactive/MedicineWheelFlowGraph.d.ts +7 -1
- package/dist/interactive/MedicineWheelFlowGraph.d.ts.map +1 -1
- package/dist/interactive/MedicineWheelFlowGraph.js +39 -3
- package/dist/interactive/MedicineWheelFlowGraph.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
10
|
export { MedicineWheelGraph } from './MedicineWheelGraph.js';
|
|
11
|
-
export type { MWGraphNode, MWGraphLink, MWGraphData, LinkStyle, LayoutMode, WheelLayoutConfig, MedicineWheelGraphProps, QuadrantGeometry, } from './types.js';
|
|
11
|
+
export type { MWGraphNode, MWGraphNodePosition, MWGraphNodePositions, MWGraphLink, MWGraphData, LinkStyle, LayoutMode, WheelLayoutConfig, MedicineWheelGraphProps, QuadrantGeometry, } from './types.js';
|
|
12
12
|
export { applyWheelLayout, DEFAULT_LAYOUT, getQuadrantGeometries, quadrantArcPath, curvedLinkPath, directionLabelPosition, } from './layout.js';
|
|
13
13
|
export { nodesToGraphNodes, edgesToGraphLinks, relationsToGraphLinks, buildGraphData, } from './converters.js';
|
|
14
14
|
export type { KinshipGraphNode, KinshipGraphEdge, FlowDiagramNode, FlowDiagramLink, DirectionWheelSegment, TimelineEntry, } from './rsis-viz.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,+EAA+E;AAC/E,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,+EAA+E;AAC/E,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAgB3B,+EAA+E;AAC/E,yCAOqB;AANnB,6GAAA,gBAAgB,OAAA;AAChB,2GAAA,cAAc,OAAA;AACd,kHAAA,qBAAqB,OAAA;AACrB,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,mHAAA,sBAAsB,OAAA;AAGxB,+EAA+E;AAC/E,iDAKyB;AAJvB,kHAAA,iBAAiB,OAAA;AACjB,kHAAA,iBAAiB,OAAA;AACjB,sHAAA,qBAAqB,OAAA;AACrB,+GAAA,cAAc,OAAA;AAahB,6CAMuB;AALrB,mHAAA,oBAAoB,OAAA;AACpB,uHAAA,wBAAwB,OAAA;AACxB,mHAAA,oBAAoB,OAAA;AACpB,qHAAA,sBAAsB,OAAA;AACtB,+GAAA,gBAAgB,OAAA"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* at the app level: `import '@xyflow/react/dist/style.css'`.
|
|
16
16
|
*/
|
|
17
17
|
import React from 'react';
|
|
18
|
-
import type { MWGraphData, MWGraphNode, WheelLayoutConfig } from '../types.js';
|
|
18
|
+
import type { MWGraphData, MWGraphNode, MWGraphNodePositions, WheelLayoutConfig } from '../types.js';
|
|
19
19
|
export interface MedicineWheelFlowGraphProps {
|
|
20
20
|
/** Graph data (nodes + links). Re-layout happens whenever this changes. */
|
|
21
21
|
data: MWGraphData;
|
|
@@ -41,8 +41,14 @@ export interface MedicineWheelFlowGraphProps {
|
|
|
41
41
|
showControls?: boolean;
|
|
42
42
|
/** Custom CSS class on the wrapper. */
|
|
43
43
|
className?: string;
|
|
44
|
+
/** Node positions to apply after the default layout seed. */
|
|
45
|
+
nodePositions?: MWGraphNodePositions;
|
|
44
46
|
/** Fired when a node is clicked, with the original MWGraphNode. */
|
|
45
47
|
onNodeClick?: (node: MWGraphNode) => void;
|
|
48
|
+
/** Fired when a node is double-clicked, with the original MWGraphNode. */
|
|
49
|
+
onNodeDoubleClick?: (node: MWGraphNode) => void;
|
|
50
|
+
/** Fired when user-dragged node positions should be persisted. */
|
|
51
|
+
onNodePositionsChange?: (positions: MWGraphNodePositions) => void;
|
|
46
52
|
}
|
|
47
53
|
/**
|
|
48
54
|
* Interactive Medicine Wheel graph. Self-contained: wraps its own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MedicineWheelFlowGraph.d.ts","sourceRoot":"","sources":["../../src/interactive/MedicineWheelFlowGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAA0C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MedicineWheelFlowGraph.d.ts","sourceRoot":"","sources":["../../src/interactive/MedicineWheelFlowGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAA0C,MAAM,OAAO,CAAC;AAoB/D,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EAEX,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AASrB,MAAM,WAAW,2BAA2B;IAC1C,2EAA2E;IAC3E,IAAI,EAAE,WAAW,CAAC;IAClB,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kDAAkD;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,mEAAmE;IACnE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAChD,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACnE;AAoOD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,qBAMxE"}
|
|
@@ -74,8 +74,32 @@ function toFlowEdge(link, index) {
|
|
|
74
74
|
data: { link },
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
+
function applyNodePositions(nodes, positions) {
|
|
78
|
+
if (!positions)
|
|
79
|
+
return nodes;
|
|
80
|
+
return nodes.map((node) => {
|
|
81
|
+
const position = positions[node.id];
|
|
82
|
+
if (!position)
|
|
83
|
+
return node;
|
|
84
|
+
return {
|
|
85
|
+
...node,
|
|
86
|
+
x: position.x,
|
|
87
|
+
y: position.y,
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function flowNodePositions(nodes) {
|
|
92
|
+
const positions = {};
|
|
93
|
+
for (const node of nodes) {
|
|
94
|
+
const { x, y } = node.position;
|
|
95
|
+
if (Number.isFinite(x) && Number.isFinite(y)) {
|
|
96
|
+
positions[node.id] = { x, y };
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return positions;
|
|
100
|
+
}
|
|
77
101
|
// ── Inner (inside ReactFlowProvider) ─────────────────────────────────────────
|
|
78
|
-
function FlowGraphInner({ data, layout, height = 600, darkMode = true, showNodeLabels = true, showOcapIndicators = true, showWilsonHalos = true, showQuadrants = true, showDirectionLabels = true, showMiniMap = true, showControls = true, className, onNodeClick, }) {
|
|
102
|
+
function FlowGraphInner({ data, layout, height = 600, darkMode = true, showNodeLabels = true, showOcapIndicators = true, showWilsonHalos = true, showQuadrants = true, showDirectionLabels = true, showMiniMap = true, showControls = true, className, nodePositions, onNodeClick, onNodeDoubleClick, onNodePositionsChange, }) {
|
|
79
103
|
const [nodes, setNodes, onNodesChange] = (0, react_2.useNodesState)([]);
|
|
80
104
|
const [edges, setEdges, onEdgesChange] = (0, react_2.useEdgesState)([]);
|
|
81
105
|
// Re-layout whenever data or display flags change. `applyWheelLayout`
|
|
@@ -83,7 +107,8 @@ function FlowGraphInner({ data, layout, height = 600, darkMode = true, showNodeL
|
|
|
83
107
|
// mutating objects owned by the parent's React state.
|
|
84
108
|
(0, react_1.useEffect)(() => {
|
|
85
109
|
const laidOut = (0, layout_js_1.applyWheelLayout)({ nodes: data.nodes.map((n) => ({ ...n })), links: data.links }, layout);
|
|
86
|
-
|
|
110
|
+
const positionedNodes = applyNodePositions(laidOut.nodes, nodePositions);
|
|
111
|
+
setNodes(positionedNodes.map((n) => toFlowNode(n, {
|
|
87
112
|
showLabel: showNodeLabels,
|
|
88
113
|
showOcap: showOcapIndicators,
|
|
89
114
|
showWilson: showWilsonHalos,
|
|
@@ -97,6 +122,7 @@ function FlowGraphInner({ data, layout, height = 600, darkMode = true, showNodeL
|
|
|
97
122
|
showOcapIndicators,
|
|
98
123
|
showWilsonHalos,
|
|
99
124
|
darkMode,
|
|
125
|
+
nodePositions,
|
|
100
126
|
setNodes,
|
|
101
127
|
setEdges,
|
|
102
128
|
]);
|
|
@@ -105,12 +131,22 @@ function FlowGraphInner({ data, layout, height = 600, darkMode = true, showNodeL
|
|
|
105
131
|
if (original && onNodeClick)
|
|
106
132
|
onNodeClick(original);
|
|
107
133
|
}, [onNodeClick]);
|
|
134
|
+
const handleNodeDoubleClick = (0, react_1.useCallback)((_event, flowNode) => {
|
|
135
|
+
const original = flowNode.data?.node;
|
|
136
|
+
if (original && onNodeDoubleClick)
|
|
137
|
+
onNodeDoubleClick(original);
|
|
138
|
+
}, [onNodeDoubleClick]);
|
|
139
|
+
const handleNodeDragStop = (0, react_1.useCallback)((_event, _flowNode, flowNodes) => {
|
|
140
|
+
if (!onNodePositionsChange)
|
|
141
|
+
return;
|
|
142
|
+
onNodePositionsChange(flowNodePositions(flowNodes));
|
|
143
|
+
}, [onNodePositionsChange]);
|
|
108
144
|
const minimapNodeColor = (0, react_1.useCallback)((flowNode) => {
|
|
109
145
|
const n = flowNode.data?.node;
|
|
110
146
|
return n?.color ?? (n ? ontology_core_1.NODE_TYPE_COLORS[n.type] : undefined) ?? '#888';
|
|
111
147
|
}, []);
|
|
112
148
|
const wrapperStyle = (0, react_1.useMemo)(() => ({ width: '100%', height }), [height]);
|
|
113
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: className, style: wrapperStyle, children: (0, jsx_runtime_1.jsxs)(react_2.ReactFlow, { nodes: nodes, edges: edges, nodeTypes: NODE_TYPES, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, onNodeClick: handleNodeClick, fitView: true, proOptions: { hideAttribution: true }, colorMode: darkMode ? 'dark' : 'light', minZoom: 0.2, maxZoom: 2.5, children: [showQuadrants && ((0, jsx_runtime_1.jsx)(DirectionQuadrant_js_1.DirectionQuadrant, { layout: layout, showLabels: showDirectionLabels })), (0, jsx_runtime_1.jsx)(react_2.Background, { variant: react_2.BackgroundVariant.Dots, gap: 24, size: 1 }), showControls && (0, jsx_runtime_1.jsx)(react_2.Controls, { showInteractive: false }), showMiniMap && ((0, jsx_runtime_1.jsx)(react_2.MiniMap, { pannable: true, zoomable: true, nodeColor: minimapNodeColor, maskColor: darkMode ? 'rgba(0,0,0,0.6)' : 'rgba(255,255,255,0.6)' }))] }) }));
|
|
149
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: className, style: wrapperStyle, children: (0, jsx_runtime_1.jsxs)(react_2.ReactFlow, { nodes: nodes, edges: edges, nodeTypes: NODE_TYPES, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, onNodeClick: handleNodeClick, onNodeDoubleClick: handleNodeDoubleClick, onNodeDragStop: handleNodeDragStop, fitView: true, proOptions: { hideAttribution: true }, colorMode: darkMode ? 'dark' : 'light', minZoom: 0.2, maxZoom: 2.5, children: [showQuadrants && ((0, jsx_runtime_1.jsx)(DirectionQuadrant_js_1.DirectionQuadrant, { layout: layout, showLabels: showDirectionLabels })), (0, jsx_runtime_1.jsx)(react_2.Background, { variant: react_2.BackgroundVariant.Dots, gap: 24, size: 1 }), showControls && (0, jsx_runtime_1.jsx)(react_2.Controls, { showInteractive: false }), showMiniMap && ((0, jsx_runtime_1.jsx)(react_2.MiniMap, { pannable: true, zoomable: true, nodeColor: minimapNodeColor, maskColor: darkMode ? 'rgba(0,0,0,0.6)' : 'rgba(255,255,255,0.6)' }))] }) }));
|
|
114
150
|
}
|
|
115
151
|
// ── Public component ─────────────────────────────────────────────────────────
|
|
116
152
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MedicineWheelFlowGraph.js","sourceRoot":"","sources":["../../src/interactive/MedicineWheelFlowGraph.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"MedicineWheelFlowGraph.js","sourceRoot":"","sources":["../../src/interactive/MedicineWheelFlowGraph.tsx"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -35,6 +35,11 @@ export interface MWGraphNode {
|
|
|
35
35
|
/** Arbitrary extra metadata for rendering */
|
|
36
36
|
metadata?: Record<string, unknown>;
|
|
37
37
|
}
|
|
38
|
+
export interface MWGraphNodePosition {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
}
|
|
42
|
+
export type MWGraphNodePositions = Record<string, MWGraphNodePosition>;
|
|
38
43
|
export type LinkStyle = 'solid' | 'dashed' | 'dotted' | 'ceremony';
|
|
39
44
|
export interface MWGraphLink {
|
|
40
45
|
source: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EAEf,MAAM,+BAA+B,CAAC;AAIvC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,gDAAgD;IAChD,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,0CAA0C;IAC1C,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medicine-wheel/graph-viz",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Medicine Wheel graph visualization — circular layout with four-direction node positioning, ceremony-aware edges, and OCAP® indicators",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"author": "IAIP Collaborative - Shawinigan, QC",
|
|
43
43
|
"license": "MIT",
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@medicine-wheel/ontology-core": "^0.4.
|
|
45
|
+
"@medicine-wheel/ontology-core": "^0.4.2"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"react": ">=18.0.0",
|