@lincle/react-web-interactive 0.4.0-next.1 → 0.4.0-next.11
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/LICENSE.md +165 -0
- 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 -5
- package/dist/components/Interaction/Controls/index.d.ts +4 -0
- package/dist/components/Interaction/Controls/index.js +99 -0
- package/dist/components/Interaction/index.d.ts +1 -2
- package/dist/components/Interaction/index.js +22 -125
- 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/Nodes/Interaction/index.d.ts +3 -0
- package/dist/components/Nodes/Interaction/index.js +65 -0
- 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 +9 -106
- package/package.json +24 -25
- 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/shared.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { type DraggableData, type
|
|
2
|
-
import { type
|
|
3
|
-
import { type CSSProperties, type MouseEvent, type
|
|
4
|
-
export { defaultScale, defaultSettings, disableMove, disablePull, type DraggableData, type EdgeNodeProps, GraphContext, GridContext, type GridProps, ModeContext, type ModeType, NodeContext, type Position, ScaleContext, SnapContext, TransformContext, transformDefaults, TranslateContext, translateDefaults } from '@lincle/react-interactive-shared';
|
|
1
|
+
import { type DraggableData, type EdgeProps, type GraphProps as InteractiveGraphProps, type MoveNodeProps as SharedMoveNodeProps, type NodeProps as SharedNodeProps, type Position, type PullNodeProps as SharedPullNodeProps, type PullProps as SharedPullProps } from '@lincle/react-interactive-shared';
|
|
2
|
+
import { type NodeProps as BaseNodeProps } from '@lincle/react-web-base';
|
|
3
|
+
import { type CSSProperties, type MouseEvent, type PropsWithChildren, type TouchEvent } from 'react';
|
|
5
4
|
export type DraggableEvent = MouseEvent | MouseEvent<HTMLElement | SVGElement> | TouchEvent | TouchEvent<HTMLElement | SVGElement>;
|
|
6
5
|
export type NodeControlProps = {
|
|
7
6
|
onDrag?: (event: DraggableEvent, data: DraggableData) => void;
|
|
8
|
-
onEdgeDrop?: (sourceId: number | string, targetId?: number | string) => void;
|
|
7
|
+
onEdgeDrop?: (event: DraggableEvent, sourceId: number | string, targetId?: number | string) => void;
|
|
9
8
|
onSelect?: () => void;
|
|
10
9
|
onStart?: (event: DraggableEvent) => void;
|
|
11
10
|
onStop?: (event: DraggableEvent, data: DraggableData) => void;
|
|
@@ -30,19 +29,16 @@ export type PullNodeProps = Omit<NodeProps, 'id'> & SharedPullNodeProps & {
|
|
|
30
29
|
};
|
|
31
30
|
};
|
|
32
31
|
export type NodeProps = SharedNodeProps & BaseNodeProps & NodeControlProps;
|
|
33
|
-
export type NodeContextProps = EdgeControlProps & GraphNodeControlProps;
|
|
34
|
-
export type GraphContextsProps = BaseGraphContextsProps & EdgeControlProps & GraphNodeControlProps & Partial<Mode> & ScaleProps & SnapProps & TransformProps & TranslateProps;
|
|
35
32
|
export type InteractionControlProps = {
|
|
36
33
|
onMouseDown?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
37
34
|
onMouseUp?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
38
35
|
onTouchEnd?: (event: TouchEvent<HTMLDivElement>) => void;
|
|
39
36
|
onTouchStart?: (event: TouchEvent<HTMLDivElement>) => void;
|
|
40
37
|
};
|
|
41
|
-
export type InteractionProps =
|
|
42
|
-
export type GraphProps = EdgeControlProps & GraphNodeControlProps & InteractionControlProps & Omit<BaseGraphProps, 'children' | 'id'> & Partial<Mode> & ScaleProps & SnapProps & TransformProps & TranslateProps & {
|
|
43
|
-
children?: Array<ReactElement<EdgesProps | NodesProps>> | ReactNode | ReactNode[];
|
|
44
|
-
id?: number | string;
|
|
45
|
-
};
|
|
38
|
+
export type InteractionProps = PropsWithChildren<{} & InteractionControlProps>;
|
|
46
39
|
export type MoveNodeProps = Omit<NodeProps, 'onDrag' | 'onSelect'> & SharedMoveNodeProps & BaseNodeProps & {
|
|
47
40
|
readonly onDrag?: (event: DraggableEvent, data: DraggableData, position: Position) => void;
|
|
48
41
|
};
|
|
42
|
+
export type GraphProps = Omit<InteractiveGraphProps, 'onNodeDrag' | 'onNodeSelect' | 'onNodeStart' | 'onNodeStop'> & InteractionProps & GraphNodeControlProps;
|
|
43
|
+
export { type ConnectionsProps, type DraggableData, type EdgeNodeProps, type EdgesProps, type GridProps, type ModeType, type NodesProps, type Position, Providers, useConnections, useDefaultLine, useDefaultNodeHeight, useDefaultNodeWidth, useDefaultShape, useDiagramId, useMaxScale, useMinScale, useMode, useModeGiven, useMove, useNodePositions, useOnMode, useOnNodeDrag, useOnNodeEdgeDrop, useOnNodeSelect, useOnNodeStart, useOnNodeStop, useOnScale, useOnTranslate, usePan, usePull, useScale, useSetConnection, useSnap, useTranslate, useZoom } from '@lincle/react-interactive-shared';
|
|
44
|
+
export { Graph as GraphBase } from '@lincle/react-web-base';
|
package/dist/shared.js
CHANGED
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.GraphBase = exports.useZoom = exports.useTranslate = exports.useSnap = exports.useSetConnection = exports.useScale = exports.usePull = exports.usePan = exports.useOnTranslate = exports.useOnScale = exports.useOnNodeStop = exports.useOnNodeStart = exports.useOnNodeSelect = exports.useOnNodeEdgeDrop = exports.useOnNodeDrag = exports.useOnMode = exports.useNodePositions = exports.useMove = exports.useModeGiven = exports.useMode = exports.useMinScale = exports.useMaxScale = exports.useDiagramId = exports.useDefaultShape = exports.useDefaultNodeWidth = exports.useDefaultNodeHeight = exports.useDefaultLine = exports.useConnections = exports.Providers = void 0;
|
|
4
4
|
var react_interactive_shared_1 = require("@lincle/react-interactive-shared");
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
Object.defineProperty(exports, "
|
|
7
|
-
Object.defineProperty(exports, "
|
|
8
|
-
Object.defineProperty(exports, "
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
Object.defineProperty(exports, "
|
|
11
|
-
Object.defineProperty(exports, "
|
|
12
|
-
Object.defineProperty(exports, "
|
|
13
|
-
Object.defineProperty(exports, "
|
|
14
|
-
Object.defineProperty(exports, "
|
|
15
|
-
Object.defineProperty(exports, "
|
|
16
|
-
Object.defineProperty(exports, "
|
|
17
|
-
Object.defineProperty(exports, "
|
|
18
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "Providers", { enumerable: true, get: function () { return react_interactive_shared_1.Providers; } });
|
|
6
|
+
Object.defineProperty(exports, "useConnections", { enumerable: true, get: function () { return react_interactive_shared_1.useConnections; } });
|
|
7
|
+
Object.defineProperty(exports, "useDefaultLine", { enumerable: true, get: function () { return react_interactive_shared_1.useDefaultLine; } });
|
|
8
|
+
Object.defineProperty(exports, "useDefaultNodeHeight", { enumerable: true, get: function () { return react_interactive_shared_1.useDefaultNodeHeight; } });
|
|
9
|
+
Object.defineProperty(exports, "useDefaultNodeWidth", { enumerable: true, get: function () { return react_interactive_shared_1.useDefaultNodeWidth; } });
|
|
10
|
+
Object.defineProperty(exports, "useDefaultShape", { enumerable: true, get: function () { return react_interactive_shared_1.useDefaultShape; } });
|
|
11
|
+
Object.defineProperty(exports, "useDiagramId", { enumerable: true, get: function () { return react_interactive_shared_1.useDiagramId; } });
|
|
12
|
+
Object.defineProperty(exports, "useMaxScale", { enumerable: true, get: function () { return react_interactive_shared_1.useMaxScale; } });
|
|
13
|
+
Object.defineProperty(exports, "useMinScale", { enumerable: true, get: function () { return react_interactive_shared_1.useMinScale; } });
|
|
14
|
+
Object.defineProperty(exports, "useMode", { enumerable: true, get: function () { return react_interactive_shared_1.useMode; } });
|
|
15
|
+
Object.defineProperty(exports, "useModeGiven", { enumerable: true, get: function () { return react_interactive_shared_1.useModeGiven; } });
|
|
16
|
+
Object.defineProperty(exports, "useMove", { enumerable: true, get: function () { return react_interactive_shared_1.useMove; } });
|
|
17
|
+
Object.defineProperty(exports, "useNodePositions", { enumerable: true, get: function () { return react_interactive_shared_1.useNodePositions; } });
|
|
18
|
+
Object.defineProperty(exports, "useOnMode", { enumerable: true, get: function () { return react_interactive_shared_1.useOnMode; } });
|
|
19
|
+
Object.defineProperty(exports, "useOnNodeDrag", { enumerable: true, get: function () { return react_interactive_shared_1.useOnNodeDrag; } });
|
|
20
|
+
Object.defineProperty(exports, "useOnNodeEdgeDrop", { enumerable: true, get: function () { return react_interactive_shared_1.useOnNodeEdgeDrop; } });
|
|
21
|
+
Object.defineProperty(exports, "useOnNodeSelect", { enumerable: true, get: function () { return react_interactive_shared_1.useOnNodeSelect; } });
|
|
22
|
+
Object.defineProperty(exports, "useOnNodeStart", { enumerable: true, get: function () { return react_interactive_shared_1.useOnNodeStart; } });
|
|
23
|
+
Object.defineProperty(exports, "useOnNodeStop", { enumerable: true, get: function () { return react_interactive_shared_1.useOnNodeStop; } });
|
|
24
|
+
Object.defineProperty(exports, "useOnScale", { enumerable: true, get: function () { return react_interactive_shared_1.useOnScale; } });
|
|
25
|
+
Object.defineProperty(exports, "useOnTranslate", { enumerable: true, get: function () { return react_interactive_shared_1.useOnTranslate; } });
|
|
26
|
+
Object.defineProperty(exports, "usePan", { enumerable: true, get: function () { return react_interactive_shared_1.usePan; } });
|
|
27
|
+
Object.defineProperty(exports, "usePull", { enumerable: true, get: function () { return react_interactive_shared_1.usePull; } });
|
|
28
|
+
Object.defineProperty(exports, "useScale", { enumerable: true, get: function () { return react_interactive_shared_1.useScale; } });
|
|
29
|
+
Object.defineProperty(exports, "useSetConnection", { enumerable: true, get: function () { return react_interactive_shared_1.useSetConnection; } });
|
|
30
|
+
Object.defineProperty(exports, "useSnap", { enumerable: true, get: function () { return react_interactive_shared_1.useSnap; } });
|
|
31
|
+
Object.defineProperty(exports, "useTranslate", { enumerable: true, get: function () { return react_interactive_shared_1.useTranslate; } });
|
|
32
|
+
Object.defineProperty(exports, "useZoom", { enumerable: true, get: function () { return react_interactive_shared_1.useZoom; } });
|
|
33
|
+
var react_web_base_1 = require("@lincle/react-web-base");
|
|
34
|
+
Object.defineProperty(exports, "GraphBase", { enumerable: true, get: function () { return react_web_base_1.Graph; } });
|
package/dist/styles.g.css
CHANGED
|
@@ -1,107 +1,6 @@
|
|
|
1
|
-
/* edge */
|
|
2
|
-
|
|
3
|
-
.lincle-base-edges {
|
|
4
|
-
position: absolute;
|
|
5
|
-
z-index: -1;
|
|
6
|
-
overflow: visible;
|
|
7
|
-
|
|
8
|
-
/* width: 1px; */
|
|
9
|
-
|
|
10
|
-
/* height: 1px; */
|
|
11
|
-
filter: drop-shadow(0 3px 6px rgba(0 0 0 / 16%)) drop-shadow(0 3px 6px rgba(0 0 0 23%));
|
|
12
|
-
backface-visibility: hidden;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.lincle-base-edges > :not(path) {
|
|
16
|
-
cursor: unset;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.lincle-base-edge-marker-arrow {
|
|
20
|
-
fill: black;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.lincle-base-edge-marker-circle {
|
|
24
|
-
fill: black;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/* grid */
|
|
28
|
-
|
|
29
|
-
.lincle-base-grid {
|
|
30
|
-
position: absolute;
|
|
31
|
-
width: 100%;
|
|
32
|
-
height: 100%;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/* node */
|
|
36
|
-
|
|
37
|
-
.lincle-base-node {
|
|
38
|
-
position: absolute;
|
|
39
|
-
transform-origin: 0 0;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/* path */
|
|
43
|
-
|
|
44
|
-
.lincle-base-edge-path {
|
|
45
|
-
stroke: black;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.lincle-base-edge-path:hover {
|
|
49
|
-
animation: lincle-base-edgedash 1.5s linear reverse infinite;
|
|
50
|
-
stroke-dasharray: 5 5;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.lincle-base-edge-dash-all .lincle-base-edge-path {
|
|
54
|
-
animation: lincle-base-edgedash 1.5s linear reverse infinite;
|
|
55
|
-
stroke-dasharray: 5 5;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.lincle-base-edge-dash-none .lincle-base-edge-path {
|
|
59
|
-
animation: none;
|
|
60
|
-
stroke-dasharray: none;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.lincle-base-edge-dash-on {
|
|
64
|
-
animation: lincle-base-edgedash 1.5s linear reverse infinite;
|
|
65
|
-
stroke-dasharray: 5 5;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.lincle-base-edge-dash-off.lincle-base-edge-path:hover {
|
|
69
|
-
animation: none;
|
|
70
|
-
stroke-dasharray: none;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.lincle-base-edge-path-border {
|
|
74
|
-
stroke-width: 30px;
|
|
75
|
-
stroke: black;
|
|
76
|
-
opacity: 0;
|
|
77
|
-
pointer-events: all;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.lincle-base-edge-path-border:hover + .lincle-base-edge-path {
|
|
81
|
-
animation: lincle-base-edgedash 1.5s linear reverse infinite;
|
|
82
|
-
stroke-dasharray: 5 5;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.lincle-base-edge-path-border:hover + .lincle-base-edge-dash-off.lincle-base-edge-path {
|
|
86
|
-
animation: none;
|
|
87
|
-
stroke-dasharray: none;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.lincle-base-edge-dash-none .lincle-base-edge-path-border:hover + .lincle-base-edge-path {
|
|
91
|
-
animation: none;
|
|
92
|
-
stroke-dasharray: none;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
@keyframes lincle-base-edgedash {
|
|
96
|
-
to {
|
|
97
|
-
stroke-dashoffset: 30;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
1
|
/* Interaction */
|
|
102
2
|
|
|
103
3
|
.lincle-interactive-graph {
|
|
104
|
-
position: relative;
|
|
105
4
|
width: 100%;
|
|
106
5
|
height: 100%;
|
|
107
6
|
overflow: hidden;
|
|
@@ -114,6 +13,15 @@
|
|
|
114
13
|
cursor: all-scroll;
|
|
115
14
|
}
|
|
116
15
|
|
|
16
|
+
.lincle-interactive-container {
|
|
17
|
+
position: absolute;
|
|
18
|
+
inset: 0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.lincle-interactive-container > div {
|
|
22
|
+
position: initial !important;
|
|
23
|
+
}
|
|
24
|
+
|
|
117
25
|
.lincle-interactive-transform {
|
|
118
26
|
transform-origin: 0 0;
|
|
119
27
|
will-change: transform;
|
|
@@ -146,11 +54,6 @@
|
|
|
146
54
|
pointer-events: none;
|
|
147
55
|
}
|
|
148
56
|
|
|
149
|
-
.lincle-interactive-drag + svg > path {
|
|
150
|
-
animation: lincle-interactive-dash 20s linear reverse infinite;
|
|
151
|
-
stroke-dasharray: 5 5;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
57
|
.lincle-interactive-hidden {
|
|
155
58
|
opacity: 0;
|
|
156
59
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@lincle/react-web-interactive",
|
|
3
3
|
"title": "lincle react web interactive",
|
|
4
4
|
"license": "LGPL-3.0-or-later",
|
|
5
|
-
"version": "0.4.0-next.
|
|
5
|
+
"version": "0.4.0-next.11",
|
|
6
6
|
"private": false,
|
|
7
7
|
"description": "A 'reactive' React node and edge generator",
|
|
8
8
|
"author": "wallzero @wallzeroblog (http://wallzero.com)",
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"COPYING.md",
|
|
21
21
|
"COPYING.LESSER.md"
|
|
22
22
|
],
|
|
23
|
-
"homepage": "https://gitlab.com
|
|
23
|
+
"homepage": "https://gitlab.com/tree/master/packages/react-web-interactive/",
|
|
24
24
|
"repository": {
|
|
25
25
|
"type": "git",
|
|
26
26
|
"url": "https://gitlab.com/.git"
|
|
27
27
|
},
|
|
28
28
|
"bugs": {
|
|
29
|
-
"url": "https://gitlab.com
|
|
29
|
+
"url": "https://gitlab.com/issues"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "run-s clean:dist build:prod build:styles",
|
|
@@ -44,35 +44,33 @@
|
|
|
44
44
|
"clean:dist": "rimraf dist"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@digest/eslint-config-jest": "^4.3
|
|
48
|
-
"@digest/eslint-config-react": "^4.3
|
|
49
|
-
"@digest/eslint-config-typescript": "^4.3
|
|
50
|
-
"@digest/jest-junit": "^4.3
|
|
51
|
-
"@digest/jest-react": "^4.3
|
|
52
|
-
"@digest/jest-typescript": "^4.3
|
|
53
|
-
"@digest/
|
|
54
|
-
"@
|
|
47
|
+
"@digest/eslint-config-jest": "^4.4.3",
|
|
48
|
+
"@digest/eslint-config-react": "^4.4.3",
|
|
49
|
+
"@digest/eslint-config-typescript": "^4.4.3",
|
|
50
|
+
"@digest/jest-junit": "^4.4.3",
|
|
51
|
+
"@digest/jest-react": "^4.4.3",
|
|
52
|
+
"@digest/jest-typescript": "^4.4.3",
|
|
53
|
+
"@digest/stylelint-config": "^4.4.3",
|
|
54
|
+
"@digest/typescript": "^4.4.3",
|
|
55
55
|
"@types/jest": "^29.5.12",
|
|
56
|
-
"@types/
|
|
57
|
-
"@types/
|
|
58
|
-
"@types/
|
|
59
|
-
"@types/react": "^18.
|
|
60
|
-
"@types/react-dom": "^18.2.24",
|
|
61
|
-
"@types/react-test-renderer": "^18.0.7",
|
|
56
|
+
"@types/node": "^22.1.0",
|
|
57
|
+
"@types/react": "^18.3.3",
|
|
58
|
+
"@types/react-dom": "^18.3.0",
|
|
59
|
+
"@types/react-test-renderer": "^18.3.0",
|
|
62
60
|
"cross-env": "^7.0.3",
|
|
63
61
|
"jest-environment-jsdom": "^29.7.0",
|
|
64
62
|
"jest-environment-jsdom-global": "^4.0.0",
|
|
65
63
|
"ncp": "^2.0.0",
|
|
66
64
|
"npm-run-all": "^4.1.5",
|
|
67
|
-
"react": "^18.
|
|
68
|
-
"react-dom": "^18.
|
|
69
|
-
"react-test-renderer": "^18.
|
|
70
|
-
"rimraf": "^
|
|
65
|
+
"react": "^18.3.1",
|
|
66
|
+
"react-dom": "^18.3.1",
|
|
67
|
+
"react-test-renderer": "^18.3.1",
|
|
68
|
+
"rimraf": "^6.0.1"
|
|
71
69
|
},
|
|
72
70
|
"dependencies": {
|
|
73
|
-
"@lincle/react-interactive-shared": "^0.0.
|
|
74
|
-
"@lincle/react-shared": "^0.0.
|
|
75
|
-
"@lincle/react-web-base": "^0.0.
|
|
71
|
+
"@lincle/react-interactive-shared": "^0.4.0-next.11",
|
|
72
|
+
"@lincle/react-shared": "^0.4.0-next.11",
|
|
73
|
+
"@lincle/react-web-base": "^0.4.0-next.11",
|
|
76
74
|
"react-draggable": "^4.4.6",
|
|
77
75
|
"react-map-interaction": "^2.1.0"
|
|
78
76
|
},
|
|
@@ -98,5 +96,6 @@
|
|
|
98
96
|
"cyclical graph",
|
|
99
97
|
"dragndrop",
|
|
100
98
|
"drag"
|
|
101
|
-
]
|
|
99
|
+
],
|
|
100
|
+
"gitHead": "9dd90674f5195c828749f2b171eee3dda0cc85b6"
|
|
102
101
|
}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const base_1 = require("../../base");
|
|
8
|
-
const shared_1 = require("../../shared");
|
|
9
|
-
const Grid_1 = __importDefault(require("../Grid"));
|
|
10
|
-
const react_1 = require("react");
|
|
11
|
-
const noGrid = [
|
|
12
|
-
1,
|
|
13
|
-
1
|
|
14
|
-
];
|
|
15
|
-
const GraphContexts = ({ children, disableMove = shared_1.disableMove, disablePan = shared_1.transformDefaults.disablePan, disablePull = shared_1.disablePull, disableScale = shared_1.transformDefaults.disableScale, edgeFrequency = shared_1.defaultSettings.edgeFrequency, grid: givenGrid, id, line = shared_1.defaultSettings.line, maxScale = shared_1.transformDefaults.maxScale, minScale = shared_1.transformDefaults.minScale, mode: givenMode, nodeFrequency = shared_1.defaultSettings.nodeFrequency, nodeHeight = shared_1.defaultSettings.height, nodeWidth = shared_1.defaultSettings.width, onEdgeDrop, onNodeDrag, onNodeSelect, onNodeStart, onNodeStop, onScale, onTranslate, scale: givenScale = shared_1.defaultScale, shape = shared_1.defaultSettings.shape, snap, xOffset = shared_1.translateDefaults.x, yOffset = shared_1.translateDefaults.y }) => {
|
|
16
|
-
const [nodeControls, setNodeControls] = (0, react_1.useState)({
|
|
17
|
-
onEdgeDrop,
|
|
18
|
-
onNodeDrag,
|
|
19
|
-
onNodeSelect,
|
|
20
|
-
onNodeStart,
|
|
21
|
-
onNodeStop
|
|
22
|
-
});
|
|
23
|
-
const NodeControls = (0, react_1.useMemo)(() => {
|
|
24
|
-
return {
|
|
25
|
-
onEdgeDrop,
|
|
26
|
-
onNodeDrag,
|
|
27
|
-
onNodeSelect,
|
|
28
|
-
onNodeStart,
|
|
29
|
-
onNodeStop,
|
|
30
|
-
setNodeControls
|
|
31
|
-
};
|
|
32
|
-
}, [
|
|
33
|
-
onEdgeDrop,
|
|
34
|
-
onNodeDrag,
|
|
35
|
-
onNodeSelect,
|
|
36
|
-
onNodeStart,
|
|
37
|
-
onNodeStop,
|
|
38
|
-
setNodeControls
|
|
39
|
-
]);
|
|
40
|
-
const transform = (0, react_1.useMemo)(() => {
|
|
41
|
-
return {
|
|
42
|
-
disablePan,
|
|
43
|
-
disableScale,
|
|
44
|
-
maxScale,
|
|
45
|
-
minScale
|
|
46
|
-
};
|
|
47
|
-
}, [
|
|
48
|
-
disablePan,
|
|
49
|
-
disableScale,
|
|
50
|
-
maxScale,
|
|
51
|
-
minScale
|
|
52
|
-
]);
|
|
53
|
-
const [mode, setMode] = (0, react_1.useState)(givenMode);
|
|
54
|
-
const handleMode = (0, react_1.useCallback)((newMode) => {
|
|
55
|
-
setMode(newMode);
|
|
56
|
-
}, []);
|
|
57
|
-
const Mode = (0, react_1.useMemo)(() => {
|
|
58
|
-
return {
|
|
59
|
-
disableMove,
|
|
60
|
-
disablePull,
|
|
61
|
-
givenMode,
|
|
62
|
-
mode,
|
|
63
|
-
onMode: handleMode
|
|
64
|
-
};
|
|
65
|
-
}, [
|
|
66
|
-
disableMove,
|
|
67
|
-
disablePull,
|
|
68
|
-
givenMode,
|
|
69
|
-
handleMode,
|
|
70
|
-
mode
|
|
71
|
-
]);
|
|
72
|
-
(0, react_1.useEffect)(() => {
|
|
73
|
-
handleMode(givenMode);
|
|
74
|
-
}, [
|
|
75
|
-
givenMode,
|
|
76
|
-
handleMode
|
|
77
|
-
]);
|
|
78
|
-
const [scale, setScale] = (0, react_1.useState)(givenScale);
|
|
79
|
-
const handleScale = (0, react_1.useCallback)((newScale) => {
|
|
80
|
-
if (onScale) {
|
|
81
|
-
onScale(newScale);
|
|
82
|
-
}
|
|
83
|
-
setScale(newScale);
|
|
84
|
-
}, [
|
|
85
|
-
onScale
|
|
86
|
-
]);
|
|
87
|
-
const Scale = (0, react_1.useMemo)(() => {
|
|
88
|
-
return {
|
|
89
|
-
onScale: handleScale,
|
|
90
|
-
scale
|
|
91
|
-
};
|
|
92
|
-
}, [
|
|
93
|
-
handleScale,
|
|
94
|
-
scale
|
|
95
|
-
]);
|
|
96
|
-
(0, react_1.useEffect)(() => {
|
|
97
|
-
setScale(givenScale);
|
|
98
|
-
}, [
|
|
99
|
-
givenScale
|
|
100
|
-
]);
|
|
101
|
-
const [translate, setTranslate] = (0, react_1.useState)({
|
|
102
|
-
x: xOffset,
|
|
103
|
-
y: yOffset
|
|
104
|
-
});
|
|
105
|
-
const handleTranslate = (0, react_1.useCallback)((newTranslate) => {
|
|
106
|
-
if (onTranslate) {
|
|
107
|
-
onTranslate(newTranslate);
|
|
108
|
-
}
|
|
109
|
-
setTranslate(newTranslate);
|
|
110
|
-
}, [
|
|
111
|
-
onTranslate
|
|
112
|
-
]);
|
|
113
|
-
const Translate = (0, react_1.useMemo)(() => {
|
|
114
|
-
return {
|
|
115
|
-
onTranslate: handleTranslate,
|
|
116
|
-
translate
|
|
117
|
-
};
|
|
118
|
-
}, [
|
|
119
|
-
handleTranslate,
|
|
120
|
-
translate
|
|
121
|
-
]);
|
|
122
|
-
(0, react_1.useEffect)(() => {
|
|
123
|
-
setTranslate({
|
|
124
|
-
x: xOffset,
|
|
125
|
-
y: yOffset
|
|
126
|
-
});
|
|
127
|
-
}, [
|
|
128
|
-
xOffset,
|
|
129
|
-
yOffset
|
|
130
|
-
]);
|
|
131
|
-
const grid = (0, react_1.useMemo)(() => {
|
|
132
|
-
var _a;
|
|
133
|
-
return (_a = (givenGrid === false ?
|
|
134
|
-
noGrid :
|
|
135
|
-
givenGrid)) !== null && _a !== void 0 ? _a : shared_1.defaultSettings.grid;
|
|
136
|
-
}, [
|
|
137
|
-
givenGrid
|
|
138
|
-
]);
|
|
139
|
-
const derivedSnap = (0, react_1.useMemo)(() => {
|
|
140
|
-
if (snap === undefined) {
|
|
141
|
-
return givenGrid === undefined ?
|
|
142
|
-
noGrid :
|
|
143
|
-
grid;
|
|
144
|
-
}
|
|
145
|
-
if (snap === false) {
|
|
146
|
-
return noGrid;
|
|
147
|
-
}
|
|
148
|
-
if (snap === true) {
|
|
149
|
-
return grid;
|
|
150
|
-
}
|
|
151
|
-
return snap;
|
|
152
|
-
}, [
|
|
153
|
-
givenGrid,
|
|
154
|
-
grid,
|
|
155
|
-
snap
|
|
156
|
-
]);
|
|
157
|
-
const hiddenGrid = givenGrid === false ?
|
|
158
|
-
null :
|
|
159
|
-
((0, jsx_runtime_1.jsx)(Grid_1.default, {}));
|
|
160
|
-
const staticContexts = ((0, jsx_runtime_1.jsx)(shared_1.NodeContext.Provider, { value: NodeControls, children: (0, jsx_runtime_1.jsx)(shared_1.SnapContext.Provider, { value: derivedSnap, children: (0, jsx_runtime_1.jsx)(shared_1.TransformContext.Provider, { value: transform, children: (0, jsx_runtime_1.jsx)(shared_1.ModeContext.Provider, { value: Mode, children: (0, jsx_runtime_1.jsx)(shared_1.ScaleContext.Provider, { value: Scale, children: (0, jsx_runtime_1.jsxs)(shared_1.TranslateContext.Provider, { value: Translate, children: [hiddenGrid, children] }) }) }) }) }) }));
|
|
161
|
-
const gridContext = givenGrid === false ?
|
|
162
|
-
staticContexts :
|
|
163
|
-
((0, jsx_runtime_1.jsx)(shared_1.GridContext.Provider, { value: givenGrid !== null && givenGrid !== void 0 ? givenGrid : shared_1.defaultSettings.grid, children: staticContexts }));
|
|
164
|
-
return ((0, jsx_runtime_1.jsx)(base_1.GraphContexts, { edgeFrequency: edgeFrequency, grid: false, id: id, line: line, nodeFrequency: nodeFrequency, nodeHeight: nodeHeight, nodeWidth: nodeWidth, shape: shape, children: gridContext }));
|
|
165
|
-
};
|
|
166
|
-
GraphContexts.displayName = 'LincleInteractiveGraphContexts';
|
|
167
|
-
exports.default = GraphContexts;
|
|
@@ -1,13 +0,0 @@
|
|
|
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 Grid = ({ children }) => {
|
|
8
|
-
const { scale } = (0, react_1.useContext)(shared_1.ScaleContext);
|
|
9
|
-
const { translate } = (0, react_1.useContext)(shared_1.TranslateContext);
|
|
10
|
-
return ((0, jsx_runtime_1.jsx)(base_1.Grid, { scale: scale, xOffset: translate.x, yOffset: translate.y, children: children }));
|
|
11
|
-
};
|
|
12
|
-
Grid.displayName = 'LincleInteractiveGrid';
|
|
13
|
-
exports.default = Grid;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Path as default } from '../../base';
|
|
@@ -1,153 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
15
|
-
const base_1 = require("../../base");
|
|
16
|
-
const shared_1 = require("../../shared");
|
|
17
|
-
const react_1 = require("react");
|
|
18
|
-
const emptyTranslation = [
|
|
19
|
-
undefined,
|
|
20
|
-
undefined
|
|
21
|
-
];
|
|
22
|
-
const Pull = (_a, ref) => {
|
|
23
|
-
var _b, _c, _d, _e, _f, _g;
|
|
24
|
-
var { className = '', diagramId, height = 0, line: givenLine, markerEnd, markerStart, onDrag, path, shape: givenShape, sourceId, style, width = 0, x: givenX, y: givenY } = _a, additionalProps = __rest(_a, ["className", "diagramId", "height", "line", "markerEnd", "markerStart", "onDrag", "path", "shape", "sourceId", "style", "width", "x", "y"]);
|
|
25
|
-
const defaultLine = (_c = (_b = (0, react_1.useContext)(shared_1.GraphContext)) === null || _b === void 0 ? void 0 : _b.defaultSettings) === null || _c === void 0 ? void 0 : _c.line;
|
|
26
|
-
const defaultShape = (_e = (_d = (0, react_1.useContext)(shared_1.GraphContext)) === null || _d === void 0 ? void 0 : _d.defaultSettings) === null || _e === void 0 ? void 0 : _e.shape;
|
|
27
|
-
const line = (_f = givenLine !== null && givenLine !== void 0 ? givenLine : defaultLine) !== null && _f !== void 0 ? _f : shared_1.defaultSettings.line;
|
|
28
|
-
const shape = (_g = givenShape !== null && givenShape !== void 0 ? givenShape : defaultShape) !== null && _g !== void 0 ? _g : shared_1.defaultSettings.shape;
|
|
29
|
-
const { x, y } = (0, react_1.useMemo)(() => {
|
|
30
|
-
var _a, _b, _c, _d;
|
|
31
|
-
if (!(givenX || givenY)) {
|
|
32
|
-
const getNumber = /(-?\d+(\.\d+)?)/ug;
|
|
33
|
-
const [translateX, translateY] = ((_a = style === null || style === void 0 ? void 0 : style.pull) === null || _a === void 0 ? void 0 : _a.transform) ?
|
|
34
|
-
(_b = style.pull.transform.match(getNumber)) !== null && _b !== void 0 ? _b : emptyTranslation :
|
|
35
|
-
emptyTranslation;
|
|
36
|
-
const left = ((_c = style === null || style === void 0 ? void 0 : style.pull) === null || _c === void 0 ? void 0 : _c.left) ?
|
|
37
|
-
style.pull.left :
|
|
38
|
-
undefined;
|
|
39
|
-
const top = ((_d = style === null || style === void 0 ? void 0 : style.pull) === null || _d === void 0 ? void 0 : _d.top) ?
|
|
40
|
-
style.pull.top :
|
|
41
|
-
undefined;
|
|
42
|
-
return {
|
|
43
|
-
x: Number(translateX) || Number(left) || 0,
|
|
44
|
-
y: Number(translateY) || Number(top) || 0
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
x: givenX !== null && givenX !== void 0 ? givenX : 0,
|
|
49
|
-
y: givenY !== null && givenY !== void 0 ? givenY : 0
|
|
50
|
-
};
|
|
51
|
-
}, [
|
|
52
|
-
givenX,
|
|
53
|
-
givenY,
|
|
54
|
-
style
|
|
55
|
-
]);
|
|
56
|
-
const start = (0, react_1.useRef)({
|
|
57
|
-
x,
|
|
58
|
-
y
|
|
59
|
-
});
|
|
60
|
-
const position = (0, react_1.useRef)({
|
|
61
|
-
moved: false,
|
|
62
|
-
x,
|
|
63
|
-
y
|
|
64
|
-
});
|
|
65
|
-
position.current = {
|
|
66
|
-
moved: x !== start.current.x ||
|
|
67
|
-
y !== start.current.y,
|
|
68
|
-
x,
|
|
69
|
-
y
|
|
70
|
-
};
|
|
71
|
-
const adjustedStyle = (0, react_1.useMemo)(() => {
|
|
72
|
-
var _a;
|
|
73
|
-
const transform = ((_a = style === null || style === void 0 ? void 0 : style.pull) === null || _a === void 0 ? void 0 : _a.transform) ?
|
|
74
|
-
style.pull.transform :
|
|
75
|
-
`translate(${x}px, ${y}px)`;
|
|
76
|
-
return Object.assign(Object.assign(Object.assign({}, style), position.current.moved ?
|
|
77
|
-
undefined :
|
|
78
|
-
{
|
|
79
|
-
height,
|
|
80
|
-
width
|
|
81
|
-
}), { transform });
|
|
82
|
-
}, [
|
|
83
|
-
height,
|
|
84
|
-
style,
|
|
85
|
-
width,
|
|
86
|
-
x,
|
|
87
|
-
y
|
|
88
|
-
]);
|
|
89
|
-
const source = (0, react_1.useMemo)(() => {
|
|
90
|
-
return {
|
|
91
|
-
height,
|
|
92
|
-
id: sourceId,
|
|
93
|
-
shape,
|
|
94
|
-
width,
|
|
95
|
-
x: start.current.x,
|
|
96
|
-
y: start.current.y
|
|
97
|
-
};
|
|
98
|
-
}, [
|
|
99
|
-
height,
|
|
100
|
-
shape,
|
|
101
|
-
sourceId,
|
|
102
|
-
width
|
|
103
|
-
]);
|
|
104
|
-
const target = (0, react_1.useMemo)(() => {
|
|
105
|
-
return {
|
|
106
|
-
height: 0,
|
|
107
|
-
id: '',
|
|
108
|
-
shape: 'rectangle',
|
|
109
|
-
width: 0,
|
|
110
|
-
x,
|
|
111
|
-
y
|
|
112
|
-
};
|
|
113
|
-
}, [
|
|
114
|
-
x,
|
|
115
|
-
y
|
|
116
|
-
]);
|
|
117
|
-
const markerId = (0, react_1.useMemo)(() => {
|
|
118
|
-
return diagramId ?
|
|
119
|
-
`${diagramId}-` :
|
|
120
|
-
'';
|
|
121
|
-
}, [
|
|
122
|
-
diagramId
|
|
123
|
-
]);
|
|
124
|
-
const svg = (0, react_1.useMemo)(() => {
|
|
125
|
-
if (position.current.moved) {
|
|
126
|
-
if (path) {
|
|
127
|
-
return path('potential', source, target);
|
|
128
|
-
}
|
|
129
|
-
return ((0, jsx_runtime_1.jsx)(base_1.Path, { id: 'potential', line: line, markerEnd: markerEnd || diagramId ?
|
|
130
|
-
`url(#diagram-${markerId}marker-arrow)` :
|
|
131
|
-
undefined, markerStart: markerStart || diagramId ?
|
|
132
|
-
`url(#diagram-${markerId}marker-circle)` :
|
|
133
|
-
undefined, source: source, target: target }));
|
|
134
|
-
}
|
|
135
|
-
return null;
|
|
136
|
-
}, [
|
|
137
|
-
diagramId,
|
|
138
|
-
line,
|
|
139
|
-
markerEnd,
|
|
140
|
-
markerId,
|
|
141
|
-
markerStart,
|
|
142
|
-
path,
|
|
143
|
-
source,
|
|
144
|
-
target
|
|
145
|
-
]);
|
|
146
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: `${className} ${position.current.moved ?
|
|
147
|
-
'lincle-interactive-moved' :
|
|
148
|
-
'lincle-interactive-hidden'} lincle-interactive-drag`, onDrag: onDrag, ref: ref, style: adjustedStyle }, additionalProps)), (0, jsx_runtime_1.jsx)("svg", { className: position.current.moved ?
|
|
149
|
-
'' :
|
|
150
|
-
'lincle-interactive-hidden', children: svg })] }));
|
|
151
|
-
};
|
|
152
|
-
Pull.displayName = 'LincleInteractivePull';
|
|
153
|
-
exports.default = (0, react_1.forwardRef)(Pull);
|