@lincle/react-web-interactive 0.4.0-next.16 → 0.4.0-next.18
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/base.js +2 -0
- package/dist/cjs/base.js.map +1 -0
- package/dist/cjs/components/Edge/Path/index.js +2 -0
- package/dist/cjs/components/Edge/Path/index.js.map +1 -0
- package/dist/cjs/components/Edge/index.js +3 -0
- package/dist/cjs/components/Edge/index.js.map +1 -0
- package/dist/cjs/components/Edges/Connections/index.js +44 -0
- package/dist/cjs/components/Edges/Connections/index.js.map +1 -0
- package/dist/cjs/components/Edges/index.js +12 -0
- package/dist/cjs/components/Edges/index.js.map +1 -0
- package/dist/cjs/components/Graph/Grid/index.js +56 -0
- package/dist/cjs/components/Graph/Grid/index.js.map +1 -0
- package/dist/cjs/components/Graph/index.js +18 -0
- package/dist/cjs/components/Graph/index.js.map +1 -0
- package/dist/{components → cjs/components}/Interaction/Controls/index.js +21 -23
- package/dist/cjs/components/Interaction/Controls/index.js.map +1 -0
- package/dist/cjs/components/Interaction/index.js +95 -0
- package/dist/cjs/components/Interaction/index.js.map +1 -0
- package/dist/{components → cjs/components}/Node/MoveNode/index.js +34 -29
- package/dist/cjs/components/Node/MoveNode/index.js.map +1 -0
- package/dist/{components → cjs/components}/Node/PullNode/index.js +31 -25
- package/dist/cjs/components/Node/PullNode/index.js.map +1 -0
- package/dist/cjs/components/Node/index.js +135 -0
- package/dist/cjs/components/Node/index.js.map +1 -0
- package/dist/{components → cjs/components}/Nodes/Interaction/index.js +16 -16
- package/dist/cjs/components/Nodes/Interaction/index.js.map +1 -0
- package/dist/cjs/components/Nodes/index.js +9 -0
- package/dist/cjs/components/Nodes/index.js.map +1 -0
- package/dist/cjs/components/index.js +6 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/shared.js +3 -0
- package/dist/cjs/shared.js.map +1 -0
- package/dist/esm/base.js +2 -0
- package/dist/esm/base.js.map +1 -0
- package/dist/esm/components/Edge/Path/index.js +2 -0
- package/dist/esm/components/Edge/Path/index.js.map +1 -0
- package/dist/esm/components/Edge/index.js +3 -0
- package/dist/esm/components/Edge/index.js.map +1 -0
- package/dist/esm/components/Edges/Connections/index.js +44 -0
- package/dist/esm/components/Edges/Connections/index.js.map +1 -0
- package/dist/esm/components/Edges/index.js +12 -0
- package/dist/esm/components/Edges/index.js.map +1 -0
- package/dist/esm/components/Graph/Grid/index.js +56 -0
- package/dist/esm/components/Graph/Grid/index.js.map +1 -0
- package/dist/esm/components/Graph/index.js +18 -0
- package/dist/esm/components/Graph/index.js.map +1 -0
- package/dist/esm/components/Interaction/Controls/index.js +126 -0
- package/dist/esm/components/Interaction/Controls/index.js.map +1 -0
- package/dist/esm/components/Interaction/index.js +95 -0
- package/dist/esm/components/Interaction/index.js.map +1 -0
- package/dist/esm/components/Node/MoveNode/index.js +188 -0
- package/dist/esm/components/Node/MoveNode/index.js.map +1 -0
- package/dist/esm/components/Node/PullNode/index.js +114 -0
- package/dist/esm/components/Node/PullNode/index.js.map +1 -0
- package/dist/esm/components/Node/index.js +135 -0
- package/dist/esm/components/Node/index.js.map +1 -0
- package/dist/esm/components/Nodes/Interaction/index.js +65 -0
- package/dist/esm/components/Nodes/Interaction/index.js.map +1 -0
- package/dist/esm/components/Nodes/index.js +9 -0
- package/dist/esm/components/Nodes/index.js.map +1 -0
- package/dist/esm/components/index.js +6 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/shared.js +3 -0
- package/dist/esm/shared.js.map +1 -0
- package/package.json +30 -27
- package/dist/base.js +0 -11
- package/dist/components/Edge/Path/index.js +0 -5
- package/dist/components/Edge/index.js +0 -10
- package/dist/components/Edges/Connections/index.js +0 -37
- package/dist/components/Edges/index.js +0 -29
- package/dist/components/Graph/Grid/index.js +0 -57
- package/dist/components/Graph/index.js +0 -24
- package/dist/components/Interaction/index.js +0 -99
- package/dist/components/Node/index.js +0 -143
- package/dist/components/Nodes/index.js +0 -26
- package/dist/components/index.js +0 -21
- package/dist/index.js +0 -18
- package/dist/shared.js +0 -34
- /package/dist/{base.d.ts → esm/base.d.ts} +0 -0
- /package/dist/{components → esm/components}/Edge/Path/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Edge/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Edges/Connections/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Edges/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Graph/Grid/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Graph/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Interaction/Controls/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Interaction/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Node/MoveNode/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Node/PullNode/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Node/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Nodes/Interaction/index.d.ts +0 -0
- /package/dist/{components → esm/components}/Nodes/index.d.ts +0 -0
- /package/dist/{components → esm/components}/index.d.ts +0 -0
- /package/dist/{index.d.ts → esm/index.d.ts} +0 -0
- /package/dist/{shared.d.ts → esm/shared.d.ts} +0 -0
package/dist/cjs/base.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACL,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Edge/Path/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,IAAI,OAAO,EAChB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Edge/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACL,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,OAAO,IAAI,IAAI,EAChB,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useConnections } from '../../../shared';
|
|
3
|
+
import { Path } from '../../Edge';
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
const Connections = ({ scale = 1, translate = {
|
|
6
|
+
x: 0,
|
|
7
|
+
y: 0
|
|
8
|
+
} }) => {
|
|
9
|
+
const connections = useConnections();
|
|
10
|
+
const paths = useMemo(() => {
|
|
11
|
+
return Object.keys(connections).map((sourceId) => {
|
|
12
|
+
const { line, source, target } = connections[sourceId] ?? {};
|
|
13
|
+
if (!source ||
|
|
14
|
+
!target) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return (_jsx(Path, { edgeId: sourceId + 'temp', isConnecting: {
|
|
18
|
+
x: target.x,
|
|
19
|
+
y: target.y
|
|
20
|
+
}, line: line, source: source, target: target }, sourceId));
|
|
21
|
+
});
|
|
22
|
+
}, [
|
|
23
|
+
connections
|
|
24
|
+
]);
|
|
25
|
+
const style = useMemo(() => {
|
|
26
|
+
const tx = translate.x;
|
|
27
|
+
const ty = translate.y;
|
|
28
|
+
const tz = scale;
|
|
29
|
+
const transform = `translateX(${tx}px) translateY(${ty}px) scale(${tz})`;
|
|
30
|
+
return {
|
|
31
|
+
transform,
|
|
32
|
+
transformOrigin: 'top left',
|
|
33
|
+
zIndex: 1
|
|
34
|
+
};
|
|
35
|
+
}, [
|
|
36
|
+
translate.x,
|
|
37
|
+
translate.y,
|
|
38
|
+
scale
|
|
39
|
+
]);
|
|
40
|
+
return (_jsx("svg", { className: 'lincle-base-edges', style: style, children: paths }));
|
|
41
|
+
};
|
|
42
|
+
Connections.displayName = 'LincleInteractiveConnections';
|
|
43
|
+
export default Connections;
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Edges/Connections/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,IAAI,EACL,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,OAAO,EACR,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,GAAwC,CAAC,EACxD,KAAK,GAAG,CAAC,EACT,SAAS,GAAG;IACV,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;CACL,EACF,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CACjC,CACE,QAAQ,EACR,EAAE;YACF,MAAM,EACJ,IAAI,EACJ,MAAM,EACN,MAAM,EACP,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEhC,IACE,CAAC,MAAM;gBACP,CAAC,MAAM,EACP,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,CACL,KAAC,IAAI,IACH,MAAM,EAAE,QAAQ,GAAG,MAAM,EACzB,YAAY,EAAE;oBACZ,CAAC,EAAE,MAAM,CAAC,CAAC;oBACX,CAAC,EAAE,MAAM,CAAC,CAAC;iBACZ,EAED,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,IAHT,QAAQ,CAIb,CACH,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC,EACD;QACE,WAAW;KACZ,CACF,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE;QACH,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,KAAK,CAAC;QAEjB,MAAM,SAAS,GAAG,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,CAAC;QAEzE,OAAO;YACL,SAAS;YACT,eAAe,EAAE,UAAU;YAC3B,MAAM,EAAE,CAAC;SACV,CAAC;IACJ,CAAC,EACD;QACE,SAAS,CAAC,CAAC;QACX,SAAS,CAAC,CAAC;QACX,KAAK;KACN,CACF,CAAC;IAEF,OAAO,CACL,cACE,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,KAAK,YAEX,KAAK,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,WAAW,CAAC,WAAW,GAAG,8BAA8B,CAAC;AAEzD,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Edges as BaseEdges } from '../../base';
|
|
3
|
+
import { useScale, useTranslate } from '../../shared';
|
|
4
|
+
import Connections from './Connections';
|
|
5
|
+
const Edges = ({ children, ...props }) => {
|
|
6
|
+
const scale = useScale();
|
|
7
|
+
const translate = useTranslate();
|
|
8
|
+
return (_jsxs(_Fragment, { children: [_jsx(BaseEdges, { scale: scale, translate: translate, ...props, children: children }), _jsx(Connections, { scale: scale, translate: translate })] }));
|
|
9
|
+
};
|
|
10
|
+
Edges.displayName = 'LincleInteractiveEdges';
|
|
11
|
+
export { Edges };
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Edges/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,IAAI,SAAS,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,QAAQ,EACR,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,WAAW,MAAM,eAAe,CAAC;AAKxC,MAAM,KAAK,GAAkC,CAAC,EAC5C,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,OAAO,CACL,8BACE,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,KAChB,KAAK,YAER,QAAQ,GACC,EACZ,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,GACpB,IACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAE7C,OAAO,EACL,KAAK,EACN,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Grid as GridBase } from '../../../base';
|
|
3
|
+
import { useMode, useScale, useTranslate } from '../../../shared';
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
const WIDTH = 0.4;
|
|
6
|
+
const Grid = ({ children }) => {
|
|
7
|
+
const scale = useScale();
|
|
8
|
+
const translate = useTranslate();
|
|
9
|
+
const mode = useMode();
|
|
10
|
+
const line = useMemo(() => {
|
|
11
|
+
const t1 = 1 + scale;
|
|
12
|
+
const t2 = 4 * scale;
|
|
13
|
+
return (_jsx("line", { stroke: 'black', strokeWidth: WIDTH, x1: t1, x2: t2, y1: t1, y2: t2 }));
|
|
14
|
+
}, [
|
|
15
|
+
scale
|
|
16
|
+
]);
|
|
17
|
+
const plus = useMemo(() => {
|
|
18
|
+
const t1 = scale;
|
|
19
|
+
const t2 = 4 * scale;
|
|
20
|
+
return (_jsxs(_Fragment, { children: [_jsx("line", { stroke: 'black', strokeWidth: WIDTH, x1: t1, x2: t2, y1: t2, y2: t2 }), _jsx("line", { stroke: 'black', strokeWidth: WIDTH, x1: t2, x2: t2, y1: t1, y2: t2 })] }));
|
|
21
|
+
}, [
|
|
22
|
+
scale
|
|
23
|
+
]);
|
|
24
|
+
const circle = useMemo(() => {
|
|
25
|
+
const t2 = 4 * scale;
|
|
26
|
+
return (_jsx("circle", { cx: t2, cy: t2, fill: 'black', r: WIDTH }));
|
|
27
|
+
}, [
|
|
28
|
+
scale
|
|
29
|
+
]);
|
|
30
|
+
const child = useMemo(() => {
|
|
31
|
+
if (!children) {
|
|
32
|
+
switch (mode) {
|
|
33
|
+
case 'move': {
|
|
34
|
+
return circle;
|
|
35
|
+
}
|
|
36
|
+
case 'pull': {
|
|
37
|
+
return line;
|
|
38
|
+
}
|
|
39
|
+
case 'select': {
|
|
40
|
+
return plus;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return children;
|
|
45
|
+
}, [
|
|
46
|
+
children,
|
|
47
|
+
circle,
|
|
48
|
+
line,
|
|
49
|
+
mode,
|
|
50
|
+
plus
|
|
51
|
+
]);
|
|
52
|
+
return (_jsx(GridBase, { scale: scale, xOffset: translate.x, yOffset: translate.y, children: child }));
|
|
53
|
+
};
|
|
54
|
+
Grid.displayName = 'LincleInteractiveGrid';
|
|
55
|
+
export default Grid;
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Graph/Grid/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,IAAI,QAAQ,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,OAAO,EACP,QAAQ,EACR,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,OAAO,EACR,MAAM,OAAO,CAAC;AAEf,MAAM,KAAK,GAAG,GAAG,CAAC;AAElB,MAAM,IAAI,GAAiC,CAAC,EAC1C,QAAQ,EACT,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE;QACH,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAErB,OAAO,CACL,eACE,MAAM,EAAC,OAAO,EACd,WAAW,EAAE,KAAK,EAClB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,GACN,CACH,CAAC;IACJ,CAAC,EACD;QACE,KAAK;KACN,CACF,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE;QACH,MAAM,EAAE,GAAG,KAAK,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAErB,OAAO,CACL,8BACE,eACE,MAAM,EAAC,OAAO,EACd,WAAW,EAAE,KAAK,EAClB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,GACN,EACF,eACE,MAAM,EAAC,OAAO,EACd,WAAW,EAAE,KAAK,EAClB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,GACN,IACD,CACJ,CAAC;IACJ,CAAC,EACD;QACE,KAAK;KACN,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE;QACH,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAErB,OAAO,CACL,iBACE,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,OAAO,EACZ,CAAC,EAAE,KAAK,GACR,CACH,CAAC;IACJ,CAAC,EACD;QACE,KAAK;KACN,CACF,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAEnB,GAAG,EAAE;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEd,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD;QACE,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;KACL,CACF,CAAC;IAEF,OAAO,CACL,KAAC,QAAQ,IACP,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,CAAC,CAAC,EACpB,OAAO,EAAE,SAAS,CAAC,CAAC,YAEnB,KAAK,GACG,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAE3C,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { GraphBase, Providers } from '../../shared';
|
|
3
|
+
import Interaction from '../Interaction';
|
|
4
|
+
import Grid from './Grid';
|
|
5
|
+
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 }) => {
|
|
6
|
+
if (!id) {
|
|
7
|
+
console.error('No ID provided to @lincle/interactive Graph!');
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const gird = showGrid === false ?
|
|
11
|
+
null :
|
|
12
|
+
_jsx(Grid, {});
|
|
13
|
+
return (_jsx(GraphBase, { edgeFrequency: edgeFrequency, grid: grid, id: id, line: line, nodeFrequency: nodeFrequency, nodeHeight: nodeHeight, nodeWidth: nodeWidth, shape: shape, showGrid: false, children: _jsxs(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, _jsx(Interaction, {}), children] }) }));
|
|
14
|
+
};
|
|
15
|
+
Graph.displayName = 'LincleInteractiveGraph';
|
|
16
|
+
export { Graph };
|
|
17
|
+
export { default as Grid } from './Grid';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Graph/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EAET,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAK1B,MAAM,KAAK,GAAkC,CAAC,EAC5C,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,OAAO,EACP,WAAW,EACX,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,IAAI,EACL,EAAE,EAAE;IACH,IACE,CAAC,EAAE,EACH,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC;QACN,KAAC,IAAI,KAAG,CAAC;IAEX,OAAO,CACL,KAAC,SAAS,IACR,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,YAEf,MAAC,SAAS,IACR,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,aAET,IAAI,EACL,KAAC,WAAW,KAAG,EACd,QAAQ,IACC,GACF,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAE7C,OAAO,EACL,KAAK,EACN,CAAC;AAEF,OAAO,EACL,OAAO,IAAI,IAAI,EAChB,MAAM,QAAQ,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const shared_1 = require("../../../shared");
|
|
5
|
-
const react_1 = require("react");
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMode, useOnMode } from '../../../shared';
|
|
3
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
6
4
|
const CLICK_TIME = 500;
|
|
7
5
|
const useDoubleTap = () => {
|
|
8
|
-
const timer =
|
|
9
|
-
|
|
6
|
+
const timer = useRef(undefined);
|
|
7
|
+
useEffect(() => {
|
|
10
8
|
return () => {
|
|
11
9
|
if (timer.current) {
|
|
12
10
|
clearTimeout(timer.current);
|
|
@@ -14,7 +12,7 @@ const useDoubleTap = () => {
|
|
|
14
12
|
}
|
|
15
13
|
};
|
|
16
14
|
}, []);
|
|
17
|
-
return
|
|
15
|
+
return useCallback((callback, threshold = CLICK_TIME) => {
|
|
18
16
|
if (timer.current) {
|
|
19
17
|
clearTimeout(timer.current);
|
|
20
18
|
timer.current = undefined;
|
|
@@ -29,17 +27,16 @@ const useDoubleTap = () => {
|
|
|
29
27
|
}, []);
|
|
30
28
|
};
|
|
31
29
|
const Controls = ({ onMouseDown, onMouseUp, onTouchEnd, onTouchStart }) => {
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
const pointerPosition = (0, react_1.useRef)({
|
|
30
|
+
const graphMode = useMode() ?? 'move';
|
|
31
|
+
const onMode = useOnMode();
|
|
32
|
+
const pointerPosition = useRef({
|
|
36
33
|
mouse: {
|
|
37
34
|
x: 0,
|
|
38
35
|
y: 0
|
|
39
36
|
}
|
|
40
37
|
});
|
|
41
38
|
const handleDoubleTap = useDoubleTap();
|
|
42
|
-
const handleTapEnd =
|
|
39
|
+
const handleTapEnd = useCallback(() => {
|
|
43
40
|
if (onMode) {
|
|
44
41
|
switch (graphMode) {
|
|
45
42
|
case 'move': {
|
|
@@ -66,7 +63,7 @@ const Controls = ({ onMouseDown, onMouseUp, onTouchEnd, onTouchStart }) => {
|
|
|
66
63
|
handleDoubleTap,
|
|
67
64
|
onMode
|
|
68
65
|
]);
|
|
69
|
-
const handleMouseDown =
|
|
66
|
+
const handleMouseDown = useCallback((event) => {
|
|
70
67
|
pointerPosition.current = {
|
|
71
68
|
mouse: {
|
|
72
69
|
x: event.clientX,
|
|
@@ -79,9 +76,9 @@ const Controls = ({ onMouseDown, onMouseUp, onTouchEnd, onTouchStart }) => {
|
|
|
79
76
|
}, [
|
|
80
77
|
onMouseDown
|
|
81
78
|
]);
|
|
82
|
-
const handleMouseUp =
|
|
83
|
-
if (pointerPosition.current
|
|
84
|
-
pointerPosition.current
|
|
79
|
+
const handleMouseUp = useCallback((event) => {
|
|
80
|
+
if (pointerPosition.current['mouse']?.x === Math.round(event.clientX) &&
|
|
81
|
+
pointerPosition.current['mouse']?.y === Math.round(event.clientY)) {
|
|
85
82
|
handleTapEnd();
|
|
86
83
|
}
|
|
87
84
|
if (onMouseUp) {
|
|
@@ -91,7 +88,7 @@ const Controls = ({ onMouseDown, onMouseUp, onTouchEnd, onTouchStart }) => {
|
|
|
91
88
|
handleTapEnd,
|
|
92
89
|
onMouseUp
|
|
93
90
|
]);
|
|
94
|
-
const handleTouchStart =
|
|
91
|
+
const handleTouchStart = useCallback((event) => {
|
|
95
92
|
for (const [index, touch] of Object.entries(event.changedTouches)) {
|
|
96
93
|
pointerPosition.current[touch.identifier] = {
|
|
97
94
|
x: touch.clientX,
|
|
@@ -104,11 +101,11 @@ const Controls = ({ onMouseDown, onMouseUp, onTouchEnd, onTouchStart }) => {
|
|
|
104
101
|
}, [
|
|
105
102
|
onTouchStart
|
|
106
103
|
]);
|
|
107
|
-
const handleTouchEnd =
|
|
104
|
+
const handleTouchEnd = useCallback((event) => {
|
|
108
105
|
let shouldHandleTapEnd = false;
|
|
109
106
|
for (const [index, touch] of Object.entries(event.changedTouches)) {
|
|
110
|
-
if (pointerPosition.current[touch.identifier]
|
|
111
|
-
pointerPosition.current[touch.identifier]
|
|
107
|
+
if (pointerPosition.current[touch.identifier]?.x === touch.clientX &&
|
|
108
|
+
pointerPosition.current[touch.identifier]?.y === touch.clientY) {
|
|
112
109
|
shouldHandleTapEnd = true;
|
|
113
110
|
}
|
|
114
111
|
}
|
|
@@ -122,7 +119,8 @@ const Controls = ({ onMouseDown, onMouseUp, onTouchEnd, onTouchStart }) => {
|
|
|
122
119
|
handleTapEnd,
|
|
123
120
|
onTouchEnd
|
|
124
121
|
]);
|
|
125
|
-
return ((
|
|
122
|
+
return (_jsx("div", { className: 'lincle-interactive-container', onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onTouchEnd: handleTouchEnd, onTouchStart: handleTouchStart, role: 'none' }));
|
|
126
123
|
};
|
|
127
124
|
Controls.displayName = 'LincleInteractiveControls';
|
|
128
|
-
|
|
125
|
+
export default Controls;
|
|
126
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Interaction/Controls/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMaxScale, useMinScale, useModeGiven, useOnMode, useOnScale, useOnTranslate, usePan, useScale, useTranslate, useZoom } from '../../shared';
|
|
3
|
+
import Controls from './Controls';
|
|
4
|
+
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
5
|
+
import { MapInteraction } from 'react-map-interaction';
|
|
6
|
+
const controls = () => {
|
|
7
|
+
return _jsx(Controls, {});
|
|
8
|
+
};
|
|
9
|
+
const Interaction = () => {
|
|
10
|
+
const scale = useScale();
|
|
11
|
+
const onScale = useOnScale();
|
|
12
|
+
const translate = useTranslate();
|
|
13
|
+
const onTranslate = useOnTranslate();
|
|
14
|
+
const givenMode = useModeGiven();
|
|
15
|
+
const onMode = useOnMode();
|
|
16
|
+
const maxScale = useMaxScale();
|
|
17
|
+
const minScale = useMinScale();
|
|
18
|
+
const pan = usePan();
|
|
19
|
+
const zoom = useZoom();
|
|
20
|
+
const keypress = useRef(false);
|
|
21
|
+
const handleMode = useCallback((changedMode) => {
|
|
22
|
+
if (onMode) {
|
|
23
|
+
onMode(changedMode);
|
|
24
|
+
}
|
|
25
|
+
}, [
|
|
26
|
+
onMode
|
|
27
|
+
]);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (givenMode) {
|
|
30
|
+
return () => {
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const onKeyDown = (event) => {
|
|
34
|
+
keypress.current = true;
|
|
35
|
+
if (event.shiftKey) {
|
|
36
|
+
handleMode('pull');
|
|
37
|
+
}
|
|
38
|
+
else if (event.ctrlKey) {
|
|
39
|
+
handleMode('select');
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const onKeyUp = (event) => {
|
|
43
|
+
keypress.current = false;
|
|
44
|
+
if (!event.shiftKey) {
|
|
45
|
+
handleMode('move');
|
|
46
|
+
}
|
|
47
|
+
else if (!event.ctrlKey) {
|
|
48
|
+
handleMode('move');
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
window.addEventListener('keydown', onKeyDown);
|
|
52
|
+
window.addEventListener('keyup', onKeyUp);
|
|
53
|
+
return () => {
|
|
54
|
+
keypress.current = false;
|
|
55
|
+
window.removeEventListener('keydown', onKeyDown);
|
|
56
|
+
window.removeEventListener('keyup', onKeyUp);
|
|
57
|
+
};
|
|
58
|
+
}, [
|
|
59
|
+
givenMode,
|
|
60
|
+
handleMode
|
|
61
|
+
]);
|
|
62
|
+
const defaultTranslation = useMemo(() => {
|
|
63
|
+
return {
|
|
64
|
+
x: Math.round(translate.x),
|
|
65
|
+
y: Math.round(translate.y)
|
|
66
|
+
};
|
|
67
|
+
}, []);
|
|
68
|
+
const handleChange = useCallback(({ scale: z, translation: { x, y } }) => {
|
|
69
|
+
if (onTranslate) {
|
|
70
|
+
onTranslate({
|
|
71
|
+
x,
|
|
72
|
+
y
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
if (onScale) {
|
|
76
|
+
onScale(z);
|
|
77
|
+
}
|
|
78
|
+
}, [
|
|
79
|
+
onScale,
|
|
80
|
+
onTranslate
|
|
81
|
+
]);
|
|
82
|
+
const transform = useMemo(() => {
|
|
83
|
+
return {
|
|
84
|
+
scale,
|
|
85
|
+
translation: translate
|
|
86
|
+
};
|
|
87
|
+
}, [
|
|
88
|
+
scale,
|
|
89
|
+
translate
|
|
90
|
+
]);
|
|
91
|
+
return (_jsx("div", { className: 'lincle-interactive-container', children: _jsx(MapInteraction, { defaultScale: scale, defaultTranslation: defaultTranslation, disablePan: !pan, disableZoom: !zoom, maxScale: maxScale, minScale: minScale, onChange: handleChange, value: transform, children: controls }) }));
|
|
92
|
+
};
|
|
93
|
+
Interaction.displayName = 'LincleInteractiveInteraction';
|
|
94
|
+
export default Interaction;
|
|
95
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Interaction/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const react_draggable_1 = require("react-draggable");
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Node } from '../../../base';
|
|
3
|
+
import { useScale, useSnap } from '../../../shared';
|
|
4
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
|
+
import { DraggableCore } from 'react-draggable';
|
|
8
6
|
const PRESS_TIME = 500;
|
|
9
7
|
const emptySnap = [
|
|
10
8
|
1,
|
|
11
9
|
1
|
|
12
10
|
];
|
|
13
11
|
const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onSelect, onStart, onStop, shape, snap: givenSnap, style, width, x, y }) => {
|
|
14
|
-
const scale =
|
|
15
|
-
const snap =
|
|
16
|
-
const [snapX, snapY] =
|
|
12
|
+
const scale = useScale();
|
|
13
|
+
const snap = useSnap();
|
|
14
|
+
const [snapX = 1, snapY = 1] = useMemo(() => {
|
|
17
15
|
if (givenSnap === undefined) {
|
|
18
16
|
if (Array.isArray(snap)) {
|
|
19
17
|
return snap;
|
|
@@ -32,12 +30,12 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
32
30
|
givenSnap,
|
|
33
31
|
snap
|
|
34
32
|
]);
|
|
35
|
-
const [position, setPosition] =
|
|
33
|
+
const [position, setPosition] = useState({
|
|
36
34
|
x,
|
|
37
35
|
y
|
|
38
36
|
});
|
|
39
|
-
const mouseDown =
|
|
40
|
-
const initialPos =
|
|
37
|
+
const mouseDown = useRef(false);
|
|
38
|
+
const initialPos = useRef(position);
|
|
41
39
|
if (!mouseDown.current && (x !== initialPos.current.x ||
|
|
42
40
|
y !== initialPos.current.y) && (x !== position.x ||
|
|
43
41
|
y !== position.y)) {
|
|
@@ -46,19 +44,19 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
46
44
|
y
|
|
47
45
|
});
|
|
48
46
|
}
|
|
49
|
-
const pos =
|
|
50
|
-
const snapped =
|
|
47
|
+
const pos = useRef(position);
|
|
48
|
+
const snapped = useRef(position);
|
|
51
49
|
snapped.current = position;
|
|
52
|
-
const moved =
|
|
53
|
-
const press =
|
|
54
|
-
|
|
50
|
+
const moved = useRef(false);
|
|
51
|
+
const press = useRef(undefined);
|
|
52
|
+
useEffect(() => {
|
|
55
53
|
return () => {
|
|
56
54
|
if (press.current) {
|
|
57
55
|
clearTimeout(press.current);
|
|
58
56
|
}
|
|
59
57
|
};
|
|
60
58
|
}, []);
|
|
61
|
-
const handleOnSelect =
|
|
59
|
+
const handleOnSelect = useCallback(() => {
|
|
62
60
|
if (onSelect) {
|
|
63
61
|
onSelect(id);
|
|
64
62
|
}
|
|
@@ -66,7 +64,7 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
66
64
|
id,
|
|
67
65
|
onSelect
|
|
68
66
|
]);
|
|
69
|
-
const handlePressStart =
|
|
67
|
+
const handlePressStart = useCallback(() => {
|
|
70
68
|
if (mode !== 'select' &&
|
|
71
69
|
!press.current) {
|
|
72
70
|
press.current = setTimeout(() => {
|
|
@@ -78,13 +76,13 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
78
76
|
handleOnSelect,
|
|
79
77
|
mode
|
|
80
78
|
]);
|
|
81
|
-
const handlePressStop =
|
|
79
|
+
const handlePressStop = useCallback(() => {
|
|
82
80
|
if (press.current) {
|
|
83
81
|
clearTimeout(press.current);
|
|
84
82
|
press.current = undefined;
|
|
85
83
|
}
|
|
86
84
|
}, []);
|
|
87
|
-
const handleStart =
|
|
85
|
+
const handleStart = useCallback((event) => {
|
|
88
86
|
event.stopPropagation();
|
|
89
87
|
mouseDown.current = true;
|
|
90
88
|
if (onSelect) {
|
|
@@ -98,7 +96,7 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
98
96
|
onSelect,
|
|
99
97
|
onStart
|
|
100
98
|
]);
|
|
101
|
-
const handleDrag =
|
|
99
|
+
const handleDrag = useCallback((event, data) => {
|
|
102
100
|
event.stopPropagation();
|
|
103
101
|
const currentX = pos.current.x;
|
|
104
102
|
const currentY = pos.current.y;
|
|
@@ -118,7 +116,10 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
118
116
|
};
|
|
119
117
|
setPosition(adjustedPosition);
|
|
120
118
|
if (onDrag) {
|
|
121
|
-
onDrag(event,
|
|
119
|
+
onDrag(event, {
|
|
120
|
+
...data,
|
|
121
|
+
...adjustedPosition
|
|
122
|
+
}, snapped.current);
|
|
122
123
|
}
|
|
123
124
|
if (moved.current === false) {
|
|
124
125
|
moved.current = true;
|
|
@@ -132,7 +133,7 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
132
133
|
snapX,
|
|
133
134
|
snapY
|
|
134
135
|
]);
|
|
135
|
-
const handleStop =
|
|
136
|
+
const handleStop = useCallback((event, data) => {
|
|
136
137
|
mouseDown.current = false;
|
|
137
138
|
if (onSelect && !press.current ||
|
|
138
139
|
mode === 'select' ||
|
|
@@ -162,7 +163,10 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
162
163
|
y: adjustedPosition.y
|
|
163
164
|
});
|
|
164
165
|
if (onStop) {
|
|
165
|
-
onStop(event,
|
|
166
|
+
onStop(event, {
|
|
167
|
+
...data,
|
|
168
|
+
...adjustedPosition
|
|
169
|
+
});
|
|
166
170
|
}
|
|
167
171
|
moved.current = false;
|
|
168
172
|
}
|
|
@@ -176,8 +180,9 @@ const MoveNode = ({ children, className, disabled, height, id, mode, onDrag, onS
|
|
|
176
180
|
snapX,
|
|
177
181
|
snapY
|
|
178
182
|
]);
|
|
179
|
-
const nodeRef =
|
|
180
|
-
return ((
|
|
183
|
+
const nodeRef = useRef(null);
|
|
184
|
+
return (_jsx(DraggableCore, { disabled: disabled, nodeRef: nodeRef, onDrag: handleDrag, onStart: handleStart, onStop: handleStop, scale: scale, children: _jsx(Node, { className: className, height: height, id: id, ref: nodeRef, shape: shape, style: style, width: width, x: position.x, y: position.y, children: children }) }));
|
|
181
185
|
};
|
|
182
186
|
MoveNode.displayName = 'LincleInteractiveMoveNode';
|
|
183
|
-
|
|
187
|
+
export default MoveNode;
|
|
188
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Node/MoveNode/index.tsx"],"names":[],"mappings":"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"}
|