@lincle/react-web-interactive 0.4.0-next.2 → 0.4.0-next.4
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/base.d.ts +1 -1
- package/dist/base.js +1 -2
- package/dist/components/Edge/Path/index.d.ts +1 -0
- package/dist/components/{Path → Edge/Path}/index.js +1 -1
- package/dist/components/Edge/index.d.ts +2 -1
- package/dist/components/Edge/index.js +7 -2
- package/dist/components/Edges/Connections/index.d.ts +4 -0
- package/dist/components/Edges/Connections/index.js +37 -0
- package/dist/components/Edges/index.d.ts +4 -1
- package/dist/components/Edges/index.js +27 -3
- package/dist/components/{Grid → Graph/Grid}/index.d.ts +1 -1
- package/dist/components/Graph/Grid/index.js +57 -0
- package/dist/components/Graph/index.d.ts +2 -1
- package/dist/components/Graph/index.js +11 -6
- package/dist/components/Node/MoveNode/index.js +22 -3
- package/dist/components/Node/PullNode/index.js +60 -42
- package/dist/components/Node/index.d.ts +3 -1
- package/dist/components/Node/index.js +33 -19
- package/dist/components/{Interaction → Nodes/Interaction}/index.d.ts +1 -1
- package/dist/components/{Interaction → Nodes/Interaction}/index.js +78 -81
- package/dist/components/Nodes/index.d.ts +4 -1
- package/dist/components/Nodes/index.js +24 -3
- package/dist/components/index.d.ts +5 -9
- package/dist/components/index.js +18 -21
- package/dist/shared.d.ts +8 -12
- package/dist/shared.js +31 -15
- package/dist/styles.g.css +0 -105
- package/package.json +18 -20
- package/dist/components/GraphContexts/index.d.ts +0 -4
- package/dist/components/GraphContexts/index.js +0 -167
- package/dist/components/Grid/index.js +0 -13
- package/dist/components/Path/index.d.ts +0 -1
- package/dist/components/Pull/index.d.ts +0 -4
- package/dist/components/Pull/index.js +0 -153
package/dist/base.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Edge, Edges, Graph,
|
|
1
|
+
export { Edge, Edges, Graph, Grid, Node, Nodes, Path } from '@lincle/react-web-base';
|
package/dist/base.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Path = exports.Nodes = exports.Node = exports.Grid = exports.
|
|
3
|
+
exports.Path = exports.Nodes = exports.Node = exports.Grid = exports.Graph = exports.Edges = exports.Edge = void 0;
|
|
4
4
|
var react_web_base_1 = require("@lincle/react-web-base");
|
|
5
5
|
Object.defineProperty(exports, "Edge", { enumerable: true, get: function () { return react_web_base_1.Edge; } });
|
|
6
6
|
Object.defineProperty(exports, "Edges", { enumerable: true, get: function () { return react_web_base_1.Edges; } });
|
|
7
7
|
Object.defineProperty(exports, "Graph", { enumerable: true, get: function () { return react_web_base_1.Graph; } });
|
|
8
|
-
Object.defineProperty(exports, "GraphContexts", { enumerable: true, get: function () { return react_web_base_1.GraphContexts; } });
|
|
9
8
|
Object.defineProperty(exports, "Grid", { enumerable: true, get: function () { return react_web_base_1.Grid; } });
|
|
10
9
|
Object.defineProperty(exports, "Node", { enumerable: true, get: function () { return react_web_base_1.Node; } });
|
|
11
10
|
Object.defineProperty(exports, "Nodes", { enumerable: true, get: function () { return react_web_base_1.Nodes; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Path as default } from '../../../base';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = void 0;
|
|
4
|
-
var base_1 = require("
|
|
4
|
+
var base_1 = require("../../../base");
|
|
5
5
|
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return base_1.Path; } });
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { Edge
|
|
1
|
+
export { Edge } from '../../base';
|
|
2
|
+
export { default as Path } from './Path';
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
6
|
+
exports.Path = exports.Edge = void 0;
|
|
4
7
|
var base_1 = require("../../base");
|
|
5
|
-
Object.defineProperty(exports, "
|
|
8
|
+
Object.defineProperty(exports, "Edge", { enumerable: true, get: function () { return base_1.Edge; } });
|
|
9
|
+
var Path_1 = require("./Path");
|
|
10
|
+
Object.defineProperty(exports, "Path", { enumerable: true, get: function () { return __importDefault(Path_1).default; } });
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const shared_1 = require("../../../shared");
|
|
5
|
+
const Edge_1 = require("../../Edge");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const Connections = ({ scale = 1, translate = {
|
|
8
|
+
x: 0,
|
|
9
|
+
y: 0
|
|
10
|
+
} }) => {
|
|
11
|
+
const connections = (0, shared_1.useConnections)();
|
|
12
|
+
const paths = (0, react_1.useMemo)(() => {
|
|
13
|
+
return Object.keys(connections).map((sourceId) => {
|
|
14
|
+
const { line, source, target } = connections[sourceId];
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)(Edge_1.Path, { edgeId: sourceId + 'temp', line: line, source: source, target: target }, sourceId));
|
|
16
|
+
});
|
|
17
|
+
}, [
|
|
18
|
+
connections
|
|
19
|
+
]);
|
|
20
|
+
const style = (0, react_1.useMemo)(() => {
|
|
21
|
+
const tx = translate.x;
|
|
22
|
+
const ty = translate.y;
|
|
23
|
+
const tz = scale;
|
|
24
|
+
const transform = `translateX(${tx}px) translateY(${ty}px) scale(${tz})`;
|
|
25
|
+
return {
|
|
26
|
+
transform,
|
|
27
|
+
transformOrigin: 'top left'
|
|
28
|
+
};
|
|
29
|
+
}, [
|
|
30
|
+
translate.x,
|
|
31
|
+
translate.y,
|
|
32
|
+
scale
|
|
33
|
+
]);
|
|
34
|
+
return ((0, jsx_runtime_1.jsx)("svg", { className: 'lincle-base-edges', style: style, children: paths }));
|
|
35
|
+
};
|
|
36
|
+
Connections.displayName = 'LincleInteractiveConnections';
|
|
37
|
+
exports.default = Connections;
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
17
|
+
exports.Edges = void 0;
|
|
18
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
+
const base_1 = require("../../base");
|
|
20
|
+
const shared_1 = require("../../shared");
|
|
21
|
+
const Connections_1 = __importDefault(require("./Connections"));
|
|
22
|
+
const Edges = (_a) => {
|
|
23
|
+
var { children } = _a, props = __rest(_a, ["children"]);
|
|
24
|
+
const scale = (0, shared_1.useScale)();
|
|
25
|
+
const translate = (0, shared_1.useTranslate)();
|
|
26
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(base_1.Edges, Object.assign({ scale: scale, translate: translate }, props, { children: children })), (0, jsx_runtime_1.jsx)(Connections_1.default, { scale: scale, translate: translate })] }));
|
|
27
|
+
};
|
|
28
|
+
exports.Edges = Edges;
|
|
29
|
+
Edges.displayName = 'LincleInteractiveEdges';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const base_1 = require("../../../base");
|
|
5
|
+
const shared_1 = require("../../../shared");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const WIDTH = 0.4;
|
|
8
|
+
const Grid = ({ children }) => {
|
|
9
|
+
const scale = (0, shared_1.useScale)();
|
|
10
|
+
const translate = (0, shared_1.useTranslate)();
|
|
11
|
+
const mode = (0, shared_1.useMode)();
|
|
12
|
+
const line = (0, react_1.useMemo)(() => {
|
|
13
|
+
const t1 = 1 + scale;
|
|
14
|
+
const t2 = 4 * scale;
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)("line", { stroke: 'black', strokeWidth: WIDTH, x1: t1, x2: t2, y1: t1, y2: t2 }));
|
|
16
|
+
}, [
|
|
17
|
+
scale
|
|
18
|
+
]);
|
|
19
|
+
const plus = (0, react_1.useMemo)(() => {
|
|
20
|
+
const t1 = scale;
|
|
21
|
+
const t2 = 4 * scale;
|
|
22
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("line", { stroke: 'black', strokeWidth: WIDTH, x1: t1, x2: t2, y1: t2, y2: t2 }), (0, jsx_runtime_1.jsx)("line", { stroke: 'black', strokeWidth: WIDTH, x1: t2, x2: t2, y1: t1, y2: t2 })] }));
|
|
23
|
+
}, [
|
|
24
|
+
scale
|
|
25
|
+
]);
|
|
26
|
+
const circle = (0, react_1.useMemo)(() => {
|
|
27
|
+
const t2 = 4 * scale;
|
|
28
|
+
return ((0, jsx_runtime_1.jsx)("circle", { cx: t2, cy: t2, fill: 'black', r: WIDTH }));
|
|
29
|
+
}, [
|
|
30
|
+
scale
|
|
31
|
+
]);
|
|
32
|
+
const child = (0, react_1.useMemo)(() => {
|
|
33
|
+
if (!children) {
|
|
34
|
+
switch (mode) {
|
|
35
|
+
case 'pull': {
|
|
36
|
+
return line;
|
|
37
|
+
}
|
|
38
|
+
case 'select': {
|
|
39
|
+
return plus;
|
|
40
|
+
}
|
|
41
|
+
case 'move': {
|
|
42
|
+
return circle;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return children;
|
|
47
|
+
}, [
|
|
48
|
+
children,
|
|
49
|
+
circle,
|
|
50
|
+
line,
|
|
51
|
+
mode,
|
|
52
|
+
plus
|
|
53
|
+
]);
|
|
54
|
+
return ((0, jsx_runtime_1.jsx)(base_1.Grid, { scale: scale, xOffset: translate.x, yOffset: translate.y, children: child }));
|
|
55
|
+
};
|
|
56
|
+
Grid.displayName = 'LincleInteractiveGrid';
|
|
57
|
+
exports.default = Grid;
|
|
@@ -3,16 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Grid = exports.Graph = void 0;
|
|
6
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const Graph = ({ children, disableMove, disablePan, disablePull, disableScale, edgeFrequency, grid, id, line, maxScale, minScale, mode: givenMode, nodeFrequency, nodeHeight, nodeWidth, onEdgeDrop, onMouseDown, onMouseUp, onNodeDrag, onNodeSelect, onNodeStart, onNodeStop, onScale, onTouchEnd, onTouchStart, onTranslate, scale, shape, snap, xOffset, yOffset }) => {
|
|
8
|
+
const shared_1 = require("../../shared");
|
|
9
|
+
const Grid_1 = __importDefault(require("./Grid"));
|
|
10
|
+
const Graph = ({ children, edgeFrequency, grid, id, line, maxScale, minScale, mode, move, nodeFrequency, nodeHeight, nodeWidth, onNodeDrag, onNodeEdgeDrop, onNodeSelect, onNodeStart, onNodeStop, onScale, onTranslate, pan, pull, scale, shape, showGrid, snap, translate, zoom }) => {
|
|
11
11
|
if (!id) {
|
|
12
12
|
console.error('No ID provided to @lincle/interactive Graph!');
|
|
13
13
|
return null;
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
const gird = showGrid === false ?
|
|
16
|
+
null :
|
|
17
|
+
(0, jsx_runtime_1.jsx)(Grid_1.default, {});
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)(shared_1.GraphBase, { edgeFrequency: edgeFrequency, grid: grid, id: id, line: line, nodeFrequency: nodeFrequency, nodeHeight: nodeHeight, nodeWidth: nodeWidth, shape: shape, showGrid: false, children: (0, jsx_runtime_1.jsxs)(shared_1.Providers, { maxScale: maxScale, minScale: minScale, mode: mode, move: move, onNodeDrag: onNodeDrag, onNodeEdgeDrop: onNodeEdgeDrop, onNodeSelect: onNodeSelect, onNodeStart: onNodeStart, onNodeStop: onNodeStop, onScale: onScale, onTranslate: onTranslate, pan: pan, pull: pull, scale: scale, snap: snap, translate: translate, zoom: zoom, children: [gird, children] }) }));
|
|
16
19
|
};
|
|
20
|
+
exports.Graph = Graph;
|
|
17
21
|
Graph.displayName = 'LincleInteractiveGraph';
|
|
18
|
-
|
|
22
|
+
var Grid_2 = require("./Grid");
|
|
23
|
+
Object.defineProperty(exports, "Grid", { enumerable: true, get: function () { return __importDefault(Grid_2).default; } });
|
|
@@ -10,9 +10,28 @@ const emptySnap = [
|
|
|
10
10
|
1,
|
|
11
11
|
1
|
|
12
12
|
];
|
|
13
|
-
const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onSelect, onStart, onStop, shape, snap, style, width, x, y }) => {
|
|
14
|
-
const
|
|
15
|
-
const
|
|
13
|
+
const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onSelect, onStart, onStop, shape, snap: givenSnap, style, width, x, y }) => {
|
|
14
|
+
const scale = (0, shared_1.useScale)();
|
|
15
|
+
const snap = (0, shared_1.useSnap)();
|
|
16
|
+
const [snapX, snapY] = (0, react_1.useMemo)(() => {
|
|
17
|
+
if (givenSnap === undefined) {
|
|
18
|
+
if (Array.isArray(snap)) {
|
|
19
|
+
return snap;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return emptySnap;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (Array.isArray(givenSnap)) {
|
|
26
|
+
return givenSnap;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return emptySnap;
|
|
30
|
+
}
|
|
31
|
+
}, [
|
|
32
|
+
givenSnap,
|
|
33
|
+
snap
|
|
34
|
+
]);
|
|
16
35
|
const [position, setPosition] = (0, react_1.useState)({
|
|
17
36
|
x,
|
|
18
37
|
y
|
|
@@ -1,40 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
4
|
const shared_1 = require("../../../shared");
|
|
8
|
-
const Pull_1 = __importDefault(require("../../Pull"));
|
|
9
5
|
const react_1 = require("react");
|
|
10
6
|
const react_draggable_1 = require("react-draggable");
|
|
11
|
-
const PullNode = ({ className, disabled, height, line, onDrag, onEdgeDrop: givenOnEdgeDrop, onStart, onStop, shape, sourceId, style, width, x, y }) => {
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const onEdgeDrop = givenOnEdgeDrop !== null && givenOnEdgeDrop !== void 0 ? givenOnEdgeDrop :
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
pos.current = position;
|
|
7
|
+
const PullNode = ({ className, disabled, height = 0, line = 'direct', onDrag, onEdgeDrop: givenOnEdgeDrop, onStart, onStop, shape = 'oval', sourceId, style, width = 0, x = 0, y = 0 }) => {
|
|
8
|
+
const diagramId = (0, shared_1.useDiagramId)();
|
|
9
|
+
const nodePositions = (0, shared_1.useNodePositions)();
|
|
10
|
+
const setConnection = (0, shared_1.useSetConnection)(sourceId);
|
|
11
|
+
const onNodeEdgeDrop = (0, shared_1.useOnNodeEdgeDrop)();
|
|
12
|
+
const onEdgeDrop = givenOnEdgeDrop !== null && givenOnEdgeDrop !== void 0 ? givenOnEdgeDrop : onNodeEdgeDrop;
|
|
13
|
+
const scale = (0, shared_1.useScale)();
|
|
14
|
+
(0, react_1.useEffect)(() => {
|
|
15
|
+
return () => {
|
|
16
|
+
setConnection();
|
|
17
|
+
};
|
|
18
|
+
}, []);
|
|
24
19
|
const handleStart = (0, react_1.useCallback)((event) => {
|
|
25
20
|
event.stopPropagation();
|
|
26
|
-
if (
|
|
21
|
+
if (!disabled &&
|
|
22
|
+
onStart) {
|
|
27
23
|
onStart(event);
|
|
28
24
|
}
|
|
29
25
|
}, [
|
|
26
|
+
disabled,
|
|
30
27
|
onStart
|
|
31
28
|
]);
|
|
32
29
|
const handleDrag = (0, react_1.useCallback)((event, data) => {
|
|
30
|
+
var _a, _b;
|
|
33
31
|
event.stopPropagation();
|
|
34
32
|
if (!disabled) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
setConnection({
|
|
34
|
+
line,
|
|
35
|
+
source: {
|
|
36
|
+
height,
|
|
37
|
+
id: sourceId,
|
|
38
|
+
shape,
|
|
39
|
+
width,
|
|
40
|
+
x,
|
|
41
|
+
y
|
|
42
|
+
},
|
|
43
|
+
target: {
|
|
44
|
+
height: 0,
|
|
45
|
+
id: sourceId,
|
|
46
|
+
shape,
|
|
47
|
+
width: 0,
|
|
48
|
+
x: (_a = data.x) !== null && _a !== void 0 ? _a : 0,
|
|
49
|
+
y: (_b = data.y) !== null && _b !== void 0 ? _b : 0
|
|
50
|
+
}
|
|
38
51
|
});
|
|
39
52
|
if (onDrag) {
|
|
40
53
|
onDrag(event, data);
|
|
@@ -42,48 +55,53 @@ const PullNode = ({ className, disabled, height, line, onDrag, onEdgeDrop: given
|
|
|
42
55
|
}
|
|
43
56
|
}, [
|
|
44
57
|
disabled,
|
|
45
|
-
|
|
58
|
+
height,
|
|
59
|
+
line,
|
|
60
|
+
onDrag,
|
|
61
|
+
setConnection,
|
|
62
|
+
shape,
|
|
63
|
+
sourceId,
|
|
64
|
+
width,
|
|
65
|
+
x,
|
|
66
|
+
y
|
|
46
67
|
]);
|
|
47
68
|
const handleStop = (0, react_1.useCallback)((event, data) => {
|
|
48
69
|
event.stopPropagation();
|
|
49
|
-
|
|
50
|
-
setPosition({
|
|
51
|
-
x: data.x,
|
|
52
|
-
y: data.y
|
|
53
|
-
});
|
|
54
|
-
}
|
|
70
|
+
setConnection();
|
|
55
71
|
if (onStop) {
|
|
56
72
|
onStop(event, data);
|
|
57
73
|
}
|
|
58
74
|
if (onEdgeDrop &&
|
|
59
|
-
nodePositions
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
nodePositions.match(position.x, position.y).then((match) => {
|
|
63
|
-
onEdgeDrop(sourceId, Boolean(match) || match === 0 ?
|
|
75
|
+
nodePositions) {
|
|
76
|
+
nodePositions.match(data.x, data.y).then((match) => {
|
|
77
|
+
onEdgeDrop(event, sourceId, Boolean(match) || match === 0 ?
|
|
64
78
|
match :
|
|
65
79
|
undefined);
|
|
66
80
|
}).catch(() => {
|
|
67
81
|
});
|
|
68
82
|
}
|
|
69
|
-
setPosition({
|
|
70
|
-
x,
|
|
71
|
-
y
|
|
72
|
-
});
|
|
73
83
|
}, [
|
|
74
|
-
disabled,
|
|
75
84
|
nodePositions,
|
|
76
85
|
onEdgeDrop,
|
|
77
86
|
onStop,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
87
|
+
setConnection,
|
|
88
|
+
sourceId
|
|
89
|
+
]);
|
|
90
|
+
const viewStyle = (0, react_1.useMemo)(() => {
|
|
91
|
+
return Object.assign({ borderRadius: shape === 'oval' ?
|
|
92
|
+
50 :
|
|
93
|
+
undefined, height, left: x, position: 'absolute', top: y, width }, style);
|
|
94
|
+
}, [
|
|
95
|
+
height,
|
|
96
|
+
shape,
|
|
97
|
+
style,
|
|
98
|
+
width,
|
|
81
99
|
x,
|
|
82
100
|
y
|
|
83
101
|
]);
|
|
84
102
|
const nodeRef = (0, react_1.useRef)(null);
|
|
85
103
|
return diagramId ?
|
|
86
|
-
((0, jsx_runtime_1.jsx)(react_draggable_1.DraggableCore, { disabled: disabled, nodeRef: nodeRef, onDrag: handleDrag, onStart: handleStart, onStop: handleStop, scale: scale, children: (0, jsx_runtime_1.jsx)(
|
|
104
|
+
((0, jsx_runtime_1.jsx)(react_draggable_1.DraggableCore, { disabled: disabled, nodeRef: nodeRef, onDrag: handleDrag, onStart: handleStart, onStop: handleStop, scale: scale, children: (0, jsx_runtime_1.jsx)("div", { className: className, ref: nodeRef, style: viewStyle }) })) :
|
|
87
105
|
null;
|
|
88
106
|
};
|
|
89
107
|
PullNode.displayName = 'LincleInteractivePullNode';
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type NodeProps } from '../../shared';
|
|
2
2
|
import { type FunctionComponent } from 'react';
|
|
3
3
|
declare const Node: FunctionComponent<NodeProps>;
|
|
4
|
-
export
|
|
4
|
+
export { Node };
|
|
5
|
+
export { default as MoveNode } from './MoveNode';
|
|
6
|
+
export { default as PullNode } from './PullNode';
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PullNode = exports.MoveNode = exports.Node = void 0;
|
|
6
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
8
|
const shared_1 = require("../../shared");
|
|
8
9
|
const MoveNode_1 = __importDefault(require("./MoveNode"));
|
|
@@ -12,20 +13,29 @@ const emptySnap = [
|
|
|
12
13
|
1,
|
|
13
14
|
1
|
|
14
15
|
];
|
|
15
|
-
const Node = ({ children,
|
|
16
|
-
var _a, _b
|
|
17
|
-
const defaultHeight = (
|
|
18
|
-
const defaultLine = (
|
|
19
|
-
const defaultShape = (
|
|
20
|
-
const defaultWidth = (
|
|
21
|
-
const snap = (0,
|
|
22
|
-
const [snapX, snapY] = snap
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
16
|
+
const Node = ({ children, height: givenHeight, id, line: givenLine, mode: givenMode, move: givenMove, onDrag, onEdgeDrop: givenOnEdgeDrop, onSelect: givenOnSelect, onStart, onStop, pull: givenPull, shape: givenShape, style, width: givenWidth, x, y }) => {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
const defaultHeight = (0, shared_1.useDefaultNodeHeight)();
|
|
19
|
+
const defaultLine = (0, shared_1.useDefaultLine)();
|
|
20
|
+
const defaultShape = (0, shared_1.useDefaultShape)();
|
|
21
|
+
const defaultWidth = (0, shared_1.useDefaultNodeWidth)();
|
|
22
|
+
const snap = (0, shared_1.useSnap)();
|
|
23
|
+
const [snapX, snapY] = snap && Array.isArray(snap) ?
|
|
24
|
+
snap :
|
|
25
|
+
emptySnap;
|
|
26
|
+
const graphMode = (0, shared_1.useMode)();
|
|
27
|
+
const graphGivenMode = (0, shared_1.useModeGiven)();
|
|
28
|
+
const mode = (_a = givenMode !== null && givenMode !== void 0 ? givenMode : graphGivenMode) !== null && _a !== void 0 ? _a : graphMode;
|
|
29
|
+
const graphMove = (0, shared_1.useMove)();
|
|
30
|
+
const graphPull = (0, shared_1.usePull)();
|
|
31
|
+
const onNodeDrag = (0, shared_1.useOnNodeDrag)();
|
|
32
|
+
const onNodeEdgeDrop = (0, shared_1.useOnNodeEdgeDrop)();
|
|
33
|
+
const onNodeSelect = (0, shared_1.useOnNodeSelect)();
|
|
34
|
+
const onNodeStart = (0, shared_1.useOnNodeStart)();
|
|
35
|
+
const onNodeStop = (0, shared_1.useOnNodeStop)();
|
|
36
|
+
const move = givenMove !== null && givenMove !== void 0 ? givenMove : graphMove;
|
|
37
|
+
const pull = givenPull !== null && givenPull !== void 0 ? givenPull : graphPull;
|
|
38
|
+
const onEdgeDrop = givenOnEdgeDrop !== null && givenOnEdgeDrop !== void 0 ? givenOnEdgeDrop : onNodeEdgeDrop;
|
|
29
39
|
const onSelect = givenOnSelect !== null && givenOnSelect !== void 0 ? givenOnSelect : onNodeSelect;
|
|
30
40
|
const pullPosition = (0, react_1.useRef)({
|
|
31
41
|
x,
|
|
@@ -104,13 +114,13 @@ const Node = ({ children, className = '', disableMove: givenDisableMove, disable
|
|
|
104
114
|
handleOnStop
|
|
105
115
|
]);
|
|
106
116
|
const pullNode = (0, react_1.useMemo)(() => {
|
|
107
|
-
return mode === 'pull' &&
|
|
108
|
-
((0, jsx_runtime_1.jsx)(PullNode_1.default, {
|
|
117
|
+
return mode === 'pull' && pull ?
|
|
118
|
+
((0, jsx_runtime_1.jsx)(PullNode_1.default, { height: height, line: line, mode: mode, onEdgeDrop: onEdgeDrop, shape: shape, sourceId: id, style: style, width: width, x: pullPosition.current.x, y: pullPosition.current.y })) :
|
|
109
119
|
null;
|
|
110
120
|
}, [
|
|
111
121
|
mode
|
|
112
122
|
]);
|
|
113
|
-
const
|
|
123
|
+
const snapper = (0, react_1.useMemo)(() => {
|
|
114
124
|
return {
|
|
115
125
|
x: Math.ceil((x !== null && x !== void 0 ? x : 0) / snapX) * snapX,
|
|
116
126
|
y: Math.ceil((y !== null && y !== void 0 ? y : 0) / snapY) * snapY
|
|
@@ -121,7 +131,11 @@ const Node = ({ children, className = '', disableMove: givenDisableMove, disable
|
|
|
121
131
|
x,
|
|
122
132
|
y
|
|
123
133
|
]);
|
|
124
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(MoveNode_1.default, {
|
|
134
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(MoveNode_1.default, { disabled: (_b = mode === 'pull') !== null && _b !== void 0 ? _b : !move, height: height, id: id, mode: mode, onDrag: handleMoveDrag, onSelect: onSelect, onStart: handleMoveStart, onStop: handleMoveStop, shape: shape, snap: snap, style: style, width: width, x: snapper.x, y: snapper.y, children: children }), pullNode] }));
|
|
125
135
|
};
|
|
136
|
+
exports.Node = Node;
|
|
126
137
|
Node.displayName = 'LincleInteractiveNode';
|
|
127
|
-
|
|
138
|
+
var MoveNode_2 = require("./MoveNode");
|
|
139
|
+
Object.defineProperty(exports, "MoveNode", { enumerable: true, get: function () { return __importDefault(MoveNode_2).default; } });
|
|
140
|
+
var PullNode_2 = require("./PullNode");
|
|
141
|
+
Object.defineProperty(exports, "PullNode", { enumerable: true, get: function () { return __importDefault(PullNode_2).default; } });
|