@lincle/react-native-interactive 0.4.0-next.17 → 0.4.0-next.19

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.
Files changed (88) hide show
  1. package/dist/cjs/base.js +12 -0
  2. package/dist/cjs/base.js.map +1 -0
  3. package/dist/cjs/components/Edge/Path/index.js +6 -0
  4. package/dist/cjs/components/Edge/Path/index.js.map +1 -0
  5. package/dist/cjs/components/Edge/index.js +8 -0
  6. package/dist/cjs/components/Edge/index.js.map +1 -0
  7. package/dist/cjs/components/Edges/Connections/index.js +50 -0
  8. package/dist/cjs/components/Edges/Connections/index.js.map +1 -0
  9. package/dist/cjs/components/Edges/index.js +27 -0
  10. package/dist/cjs/components/Edges/index.js.map +1 -0
  11. package/dist/cjs/components/Graph/Grid/index.js +59 -0
  12. package/dist/cjs/components/Graph/Grid/index.js.map +1 -0
  13. package/dist/cjs/components/Graph/index.js +23 -0
  14. package/dist/cjs/components/Graph/index.js.map +1 -0
  15. package/dist/cjs/components/Interaction/index.js +111 -0
  16. package/dist/cjs/components/Interaction/index.js.map +1 -0
  17. package/dist/cjs/components/Node/Draggable.js +281 -0
  18. package/dist/cjs/components/Node/Draggable.js.map +1 -0
  19. package/dist/cjs/components/Node/MoveNode/index.js +66 -0
  20. package/dist/cjs/components/Node/MoveNode/index.js.map +1 -0
  21. package/dist/cjs/components/Node/PullNode/index.js +129 -0
  22. package/dist/cjs/components/Node/PullNode/index.js.map +1 -0
  23. package/dist/cjs/components/Node/index.js +143 -0
  24. package/dist/cjs/components/Node/index.js.map +1 -0
  25. package/dist/cjs/components/Nodes/Interaction/index.js +33 -0
  26. package/dist/cjs/components/Nodes/Interaction/index.js.map +1 -0
  27. package/dist/cjs/components/Nodes/index.js +15 -0
  28. package/dist/cjs/components/Nodes/index.js.map +1 -0
  29. package/dist/cjs/components/index.js +22 -0
  30. package/dist/cjs/components/index.js.map +1 -0
  31. package/dist/cjs/index.js +19 -0
  32. package/dist/cjs/index.js.map +1 -0
  33. package/dist/cjs/shared.js +34 -0
  34. package/dist/cjs/shared.js.map +1 -0
  35. package/dist/{base.js → esm/base.js} +1 -0
  36. package/dist/esm/base.js.map +1 -0
  37. package/dist/{components → esm/components}/Edge/Path/index.js +1 -0
  38. package/dist/esm/components/Edge/Path/index.js.map +1 -0
  39. package/dist/{components → esm/components}/Edge/index.js +1 -0
  40. package/dist/esm/components/Edge/index.js.map +1 -0
  41. package/dist/{components → esm/components}/Edges/Connections/index.js +2 -1
  42. package/dist/esm/components/Edges/Connections/index.js.map +1 -0
  43. package/dist/esm/components/Edges/index.js +21 -0
  44. package/dist/esm/components/Edges/index.js.map +1 -0
  45. package/dist/{components → esm/components}/Graph/Grid/index.js +1 -0
  46. package/dist/esm/components/Graph/Grid/index.js.map +1 -0
  47. package/dist/{components → esm/components}/Graph/index.js +1 -0
  48. package/dist/esm/components/Graph/index.js.map +1 -0
  49. package/dist/{components → esm/components}/Interaction/index.js +3 -3
  50. package/dist/esm/components/Interaction/index.js.map +1 -0
  51. package/dist/{components → esm/components}/Node/Draggable.js +16 -9
  52. package/dist/esm/components/Node/Draggable.js.map +1 -0
  53. package/dist/{components → esm/components}/Node/MoveNode/index.js +2 -1
  54. package/dist/esm/components/Node/MoveNode/index.js.map +1 -0
  55. package/dist/{components → esm/components}/Node/PullNode/index.js +12 -8
  56. package/dist/esm/components/Node/PullNode/index.js.map +1 -0
  57. package/dist/{components → esm/components}/Node/index.js +13 -13
  58. package/dist/esm/components/Node/index.js.map +1 -0
  59. package/dist/{components → esm/components}/Nodes/Interaction/index.js +5 -1
  60. package/dist/esm/components/Nodes/Interaction/index.js.map +1 -0
  61. package/dist/esm/components/Nodes/index.js +9 -0
  62. package/dist/esm/components/Nodes/index.js.map +1 -0
  63. package/dist/{components → esm/components}/index.js +1 -0
  64. package/dist/esm/components/index.js.map +1 -0
  65. package/dist/{index.js → esm/index.js} +1 -0
  66. package/dist/esm/index.js.map +1 -0
  67. package/dist/{shared.js → esm/shared.js} +1 -0
  68. package/dist/esm/shared.js.map +1 -0
  69. package/package.json +30 -27
  70. package/dist/components/Edges/index.js +0 -32
  71. package/dist/components/Nodes/index.js +0 -20
  72. /package/dist/{base.d.ts → esm/base.d.ts} +0 -0
  73. /package/dist/{components → esm/components}/Edge/Path/index.d.ts +0 -0
  74. /package/dist/{components → esm/components}/Edge/index.d.ts +0 -0
  75. /package/dist/{components → esm/components}/Edges/Connections/index.d.ts +0 -0
  76. /package/dist/{components → esm/components}/Edges/index.d.ts +0 -0
  77. /package/dist/{components → esm/components}/Graph/Grid/index.d.ts +0 -0
  78. /package/dist/{components → esm/components}/Graph/index.d.ts +0 -0
  79. /package/dist/{components → esm/components}/Interaction/index.d.ts +0 -0
  80. /package/dist/{components → esm/components}/Node/Draggable.d.ts +0 -0
  81. /package/dist/{components → esm/components}/Node/MoveNode/index.d.ts +0 -0
  82. /package/dist/{components → esm/components}/Node/PullNode/index.d.ts +0 -0
  83. /package/dist/{components → esm/components}/Node/index.d.ts +0 -0
  84. /package/dist/{components → esm/components}/Nodes/Interaction/index.d.ts +0 -0
  85. /package/dist/{components → esm/components}/Nodes/index.d.ts +0 -0
  86. /package/dist/{components → esm/components}/index.d.ts +0 -0
  87. /package/dist/{index.d.ts → esm/index.d.ts} +0 -0
  88. /package/dist/{shared.d.ts → esm/shared.d.ts} +0 -0
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Path = exports.Nodes = exports.Node = exports.Grid = exports.Graph = exports.Edges = exports.Edge = void 0;
4
+ var react_native_base_1 = require("@lincle/react-native-base");
5
+ Object.defineProperty(exports, "Edge", { enumerable: true, get: function () { return react_native_base_1.Edge; } });
6
+ Object.defineProperty(exports, "Edges", { enumerable: true, get: function () { return react_native_base_1.Edges; } });
7
+ Object.defineProperty(exports, "Graph", { enumerable: true, get: function () { return react_native_base_1.Graph; } });
8
+ Object.defineProperty(exports, "Grid", { enumerable: true, get: function () { return react_native_base_1.Grid; } });
9
+ Object.defineProperty(exports, "Node", { enumerable: true, get: function () { return react_native_base_1.Node; } });
10
+ Object.defineProperty(exports, "Nodes", { enumerable: true, get: function () { return react_native_base_1.Nodes; } });
11
+ Object.defineProperty(exports, "Path", { enumerable: true, get: function () { return react_native_base_1.Path; } });
12
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/base.ts"],"names":[],"mappings":";;;AAAA,+DAQmC;AAPjC,yGAAA,IAAI,OAAA;AACJ,0GAAA,KAAK,OAAA;AACL,0GAAA,KAAK,OAAA;AACL,yGAAA,IAAI,OAAA;AACJ,yGAAA,IAAI,OAAA;AACJ,0GAAA,KAAK,OAAA;AACL,yGAAA,IAAI,OAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Path = void 0;
4
+ var base_1 = require("../../../base");
5
+ Object.defineProperty(exports, "Path", { enumerable: true, get: function () { return base_1.Path; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Edge/Path/index.tsx"],"names":[],"mappings":";;;AAAA,sCAEuB;AADrB,4FAAA,IAAI,OAAA"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Path = exports.Edge = void 0;
4
+ var base_1 = require("../../base");
5
+ Object.defineProperty(exports, "Edge", { enumerable: true, get: function () { return base_1.Edge; } });
6
+ var Path_1 = require("./Path");
7
+ Object.defineProperty(exports, "Path", { enumerable: true, get: function () { return Path_1.Path; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Edge/index.tsx"],"names":[],"mappings":";;;AAAA,mCAEoB;AADlB,4FAAA,IAAI,OAAA;AAEN,+BAEgB;AADd,4FAAA,IAAI,OAAA"}
@@ -0,0 +1,50 @@
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 react_native_1 = require("react-native");
8
+ const react_native_svg_1 = require("react-native-svg");
9
+ const { svgStyle } = react_native_1.StyleSheet.create({
10
+ svgStyle: {
11
+ height: '100%',
12
+ overflow: 'visible',
13
+ pointerEvents: 'box-none',
14
+ position: 'absolute',
15
+ width: '100%',
16
+ zIndex: 1
17
+ }
18
+ });
19
+ const isConnecting = {
20
+ x: 0,
21
+ y: 0
22
+ };
23
+ const Connections = ({ scale = 1, translate = {
24
+ x: 0,
25
+ y: 0
26
+ } }) => {
27
+ const connections = (0, shared_1.useConnections)();
28
+ const paths = (0, react_1.useMemo)(() => {
29
+ return Object.keys(connections).map((sourceId) => {
30
+ const { line, source, target } = connections[sourceId] ?? {};
31
+ return ((0, jsx_runtime_1.jsx)(Edge_1.Path, { edgeId: sourceId + 'temp', isConnecting: isConnecting, line: line, source: source, target: target }, sourceId));
32
+ });
33
+ }, [
34
+ connections
35
+ ]);
36
+ const translateXYZ = (0, react_1.useMemo)(() => {
37
+ const tx = translate.x;
38
+ const ty = translate.y;
39
+ const tz = scale;
40
+ return `translate(${tx}, ${ty}) scale(${tz})`;
41
+ }, [
42
+ translate.x,
43
+ translate.y,
44
+ scale
45
+ ]);
46
+ return ((0, jsx_runtime_1.jsx)(react_native_svg_1.Svg, { style: svgStyle, children: (0, jsx_runtime_1.jsxs)(react_native_svg_1.G, { transform: translateXYZ, children: [(0, jsx_runtime_1.jsx)(react_native_svg_1.Defs, { children: (0, jsx_runtime_1.jsx)(shared_1.Marker, {}) }), paths] }) }));
47
+ };
48
+ Connections.displayName = 'LincleInteractiveConnections';
49
+ exports.default = Connections;
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Edges/Connections/index.tsx"],"names":[],"mappings":";;;AAAA,4CAIyB;AACzB,qCAEoB;AACpB,iCAGe;AACf,+CAEsB;AACtB,uDAI0B;AAE1B,MAAM,EACJ,QAAQ,EACT,GAAG,yBAAU,CAAC,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,SAAS;QACnB,aAAa,EAAE,UAAU;QACzB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC;KACV;CACF,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG;IACnB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;CACL,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,IAAA,uBAAc,GAAE,CAAC;IAErC,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,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,OAAO,CACL,uBAAC,WAAI,IACH,MAAM,EAAE,QAAQ,GAAG,MAAM,EACzB,YAAY,EAAE,YAAY,EAE1B,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,YAAY,GAAG,IAAA,eAAO,EAC1B,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,OAAO,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC;IAChD,CAAC,EACD;QACE,SAAS,CAAC,CAAC;QACX,SAAS,CAAC,CAAC;QACX,KAAK;KACN,CACF,CAAC;IAEF,OAAO,CACL,uBAAC,sBAAG,IACF,KAAK,EAAE,QAAQ,YAEf,wBAAC,oBAAC,IACA,SAAS,EAAE,YAAY,aAEvB,uBAAC,uBAAI,cACH,uBAAC,eAAM,KAAG,GACL,EACN,KAAK,IACJ,GACA,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,WAAW,CAAC,WAAW,GAAG,8BAA8B,CAAC;AAEzD,kBAAe,WAAW,CAAC"}
@@ -0,0 +1,27 @@
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
+ exports.Edges = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const base_1 = require("../../base");
9
+ const shared_1 = require("../../shared");
10
+ const Connections_1 = __importDefault(require("./Connections"));
11
+ const react_native_1 = require("react-native");
12
+ const { edgesStyle } = react_native_1.StyleSheet.create({
13
+ edgesStyle: {
14
+ height: '100%',
15
+ pointerEvents: 'box-none',
16
+ position: 'absolute',
17
+ width: '100%'
18
+ }
19
+ });
20
+ const Edges = ({ children, ...props }) => {
21
+ const scale = (0, shared_1.useScale)();
22
+ const translate = (0, shared_1.useTranslate)();
23
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: edgesStyle, children: [(0, jsx_runtime_1.jsx)(base_1.Edges, { scale: scale, translate: translate, ...props, children: children }), (0, jsx_runtime_1.jsx)(Connections_1.default, { scale: scale, translate: translate })] }));
24
+ };
25
+ exports.Edges = Edges;
26
+ Edges.displayName = 'LincleInteractiveEdges';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Edges/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,qCAEoB;AACpB,yCAIsB;AACtB,gEAAwC;AAIxC,+CAGsB;AAEtB,MAAM,EACJ,UAAU,EACX,GAAG,yBAAU,CAAC,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,UAAU;QACzB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAC;AAEH,MAAM,KAAK,GAAkC,CAAC,EAC5C,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAC;IACzB,MAAM,SAAS,GAAG,IAAA,qBAAY,GAAE,CAAC;IAEjC,OAAO,CACL,wBAAC,mBAAI,IACH,KAAK,EAAE,UAAU,aAEjB,uBAAC,YAAS,IACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,KAChB,KAAK,YAER,QAAQ,GACC,EACZ,uBAAC,qBAAW,IACV,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,GACpB,IACG,CACR,CAAC;AACJ,CAAC,CAAC;AAKA,sBAAK;AAHP,KAAK,CAAC,WAAW,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1,59 @@
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 react_native_svg_1 = require("react-native-svg");
8
+ const WIDTH = 0.4;
9
+ const Grid = ({ children }) => {
10
+ const scale = (0, shared_1.useScale)();
11
+ const translate = (0, shared_1.useTranslate)();
12
+ const mode = (0, shared_1.useMode)();
13
+ const line = (0, react_1.useMemo)(() => {
14
+ const t1 = 1 + scale;
15
+ const t2 = 4 * scale;
16
+ return ((0, jsx_runtime_1.jsx)(react_native_svg_1.Line, { stroke: 'black', strokeWidth: WIDTH, x1: t1, x2: t2, y1: t1, y2: t2 }));
17
+ }, [
18
+ scale
19
+ ]);
20
+ const plus = (0, react_1.useMemo)(() => {
21
+ const t1 = scale;
22
+ const t2 = 4 * scale;
23
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_native_svg_1.Line, { stroke: 'black', strokeWidth: WIDTH, x1: t1, x2: t2, y1: t2, y2: t2 }), (0, jsx_runtime_1.jsx)(react_native_svg_1.Line, { stroke: 'black', strokeWidth: WIDTH, x1: t2, x2: t2, y1: t1, y2: t2 })] }));
24
+ }, [
25
+ scale
26
+ ]);
27
+ const circle = (0, react_1.useMemo)(() => {
28
+ const t2 = 4 * scale;
29
+ return ((0, jsx_runtime_1.jsx)(react_native_svg_1.Circle, { cx: t2, cy: t2, fill: 'black', r: WIDTH }));
30
+ }, [
31
+ scale
32
+ ]);
33
+ const child = (0, react_1.useMemo)(() => {
34
+ if (!children) {
35
+ switch (mode) {
36
+ case 'move': {
37
+ return circle;
38
+ }
39
+ case 'pull': {
40
+ return line;
41
+ }
42
+ case 'select': {
43
+ return plus;
44
+ }
45
+ }
46
+ }
47
+ return children;
48
+ }, [
49
+ children,
50
+ circle,
51
+ line,
52
+ mode,
53
+ plus
54
+ ]);
55
+ return ((0, jsx_runtime_1.jsx)(base_1.Grid, { scale: scale, xOffset: translate.x, yOffset: translate.y, children: child }));
56
+ };
57
+ Grid.displayName = 'LincleInteractiveGrid';
58
+ exports.default = Grid;
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Graph/Grid/index.tsx"],"names":[],"mappings":";;;AAAA,wCAEuB;AACvB,4CAKyB;AACzB,iCAGe;AACf,uDAG0B;AAE1B,MAAM,KAAK,GAAG,GAAG,CAAC;AAElB,MAAM,IAAI,GAAiC,CAAC,EAC1C,QAAQ,EACT,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAC;IACzB,MAAM,SAAS,GAAG,IAAA,qBAAY,GAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAA,gBAAO,GAAE,CAAC;IAEvB,MAAM,IAAI,GAAG,IAAA,eAAO,EAClB,GAAG,EAAE;QACH,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAErB,OAAO,CACL,uBAAC,uBAAI,IACH,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,IAAA,eAAO,EAClB,GAAG,EAAE;QACH,MAAM,EAAE,GAAG,KAAK,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAErB,OAAO,CACL,6DACE,uBAAC,uBAAI,IACH,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,uBAAC,uBAAI,IACH,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,IAAA,eAAO,EACpB,GAAG,EAAE;QACH,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAErB,OAAO,CACL,uBAAC,yBAAM,IACL,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,IAAA,eAAO,EAEnB,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,uBAAC,WAAQ,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,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,23 @@
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
+ exports.Graph = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const shared_1 = require("../../shared");
9
+ const Interaction_1 = __importDefault(require("../Interaction"));
10
+ const Grid_1 = __importDefault(require("./Grid"));
11
+ 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 }) => {
12
+ if (!id) {
13
+ console.error('No ID provided to @lincle/interactive Graph!');
14
+ return null;
15
+ }
16
+ const gird = showGrid === false ?
17
+ null :
18
+ (0, jsx_runtime_1.jsx)(Grid_1.default, {});
19
+ 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, (0, jsx_runtime_1.jsx)(Interaction_1.default, {}), children] }) }));
20
+ };
21
+ exports.Graph = Graph;
22
+ Graph.displayName = 'LincleInteractiveGraph';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Graph/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,yCAIsB;AACtB,iEAAyC;AACzC,kDAA0B;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,uBAAC,cAAI,KAAG,CAAC;IAEX,OAAO,CACL,uBAAC,kBAAS,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,wBAAC,kBAAS,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,uBAAC,qBAAW,KAAG,EACd,QAAQ,IACC,GACF,CACb,CAAC;AACJ,CAAC,CAAC;AAKA,sBAAK;AAHP,KAAK,CAAC,WAAW,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1,111 @@
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 react_native_zoomable_view_1 = require("@openspacelabs/react-native-zoomable-view");
6
+ const react_1 = require("react");
7
+ const react_native_1 = require("react-native");
8
+ const CLICK_TIME = 500;
9
+ const useDoubleTap = () => {
10
+ const timer = (0, react_1.useRef)(null);
11
+ (0, react_1.useEffect)(() => {
12
+ return () => {
13
+ if (timer.current) {
14
+ clearTimeout(timer.current);
15
+ timer.current = null;
16
+ }
17
+ };
18
+ }, []);
19
+ return (0, react_1.useCallback)((callback, threshold = CLICK_TIME) => {
20
+ if (timer.current) {
21
+ clearTimeout(timer.current);
22
+ timer.current = null;
23
+ callback();
24
+ }
25
+ else {
26
+ timer.current = setTimeout(() => {
27
+ timer.current = null;
28
+ }, threshold);
29
+ }
30
+ }, []);
31
+ };
32
+ const styles = react_native_1.StyleSheet.create({
33
+ container: {
34
+ bottom: 0,
35
+ height: '100%',
36
+ left: 0,
37
+ overflow: 'visible',
38
+ position: 'absolute',
39
+ right: 0,
40
+ top: 0,
41
+ width: '100%'
42
+ },
43
+ zoomable: {
44
+ overflow: 'visible'
45
+ }
46
+ });
47
+ const Interaction = ({ onPointerUp }) => {
48
+ const scale = (0, shared_1.useScale)();
49
+ const translate = (0, shared_1.useTranslate)();
50
+ const onScale = (0, shared_1.useOnScale)();
51
+ const onTranslateThrottle = (0, shared_1.useOnTranslateThrottle)();
52
+ const graphMode = (0, shared_1.useMode)() ?? 'move';
53
+ const onMode = (0, shared_1.useOnMode)();
54
+ const handleDoubleTap = useDoubleTap();
55
+ const handleOnTransform = (0, react_1.useCallback)((event) => {
56
+ const { offsetX, offsetY, originalHeight, originalWidth, zoomLevel } = event;
57
+ onTranslateThrottle(originalWidth, originalHeight, offsetX, offsetY, zoomLevel);
58
+ }, [
59
+ onTranslateThrottle
60
+ ]);
61
+ const handleZoom = (0, react_1.useCallback)((_event, _gestureState, zoomableViewEventObject) => {
62
+ const { offsetX, offsetY, originalHeight, originalWidth, zoomLevel } = zoomableViewEventObject;
63
+ onTranslateThrottle(originalWidth, originalHeight, offsetX, offsetY, zoomLevel);
64
+ if (onScale) {
65
+ onScale(zoomLevel);
66
+ }
67
+ }, [
68
+ onScale,
69
+ onTranslateThrottle
70
+ ]);
71
+ const handleTapEnd = (0, react_1.useCallback)(() => {
72
+ if (onMode) {
73
+ switch (graphMode) {
74
+ case 'move': {
75
+ handleDoubleTap(() => {
76
+ onMode('pull');
77
+ });
78
+ return;
79
+ }
80
+ case 'pull': {
81
+ handleDoubleTap(() => {
82
+ onMode('select');
83
+ });
84
+ return;
85
+ }
86
+ case 'select': {
87
+ handleDoubleTap(() => {
88
+ onMode('move');
89
+ });
90
+ }
91
+ }
92
+ }
93
+ }, [
94
+ graphMode,
95
+ handleDoubleTap,
96
+ onMode
97
+ ]);
98
+ const handlePointerUp = (0, react_1.useCallback)((event) => {
99
+ handleTapEnd();
100
+ if (onPointerUp) {
101
+ onPointerUp(event);
102
+ }
103
+ }, [
104
+ handleTapEnd,
105
+ onPointerUp
106
+ ]);
107
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.container, children: (0, jsx_runtime_1.jsx)(react_native_zoomable_view_1.ReactNativeZoomableView, { bindToBorders: false, doubleTapDelay: 1, doubleTapZoomToCenter: false, initialOffsetX: translate.x, initialOffsetY: translate.y, initialZoom: scale, maxZoom: 1.5, minZoom: 0.5, movementSensibility: 1, onSingleTap: handlePointerUp, onTransform: handleOnTransform, onZoomAfter: handleZoom, panEnabled: true, style: styles.zoomable, visualTouchFeedbackEnabled: false, zoomStep: 0.5 }) }));
108
+ };
109
+ Interaction.displayName = 'LincleInteractiveInteraction';
110
+ exports.default = Interaction;
111
+ //# 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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"}
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
5
+ const react_native_1 = require("react-native");
6
+ const clamp = (number, min, max) => {
7
+ return Math.max(min, Math.min(number, max));
8
+ };
9
+ const styles = react_native_1.StyleSheet.create({
10
+ debugView: {
11
+ backgroundColor: '#ff000044',
12
+ borderColor: '#fced0ecc',
13
+ borderWidth: 4,
14
+ position: 'absolute'
15
+ },
16
+ text: {
17
+ color: '#fff',
18
+ textAlign: 'center'
19
+ }
20
+ });
21
+ const Draggable = ({ animatedViewProps, children, debug = false, disabled = false, imageSource, isCircle, maxX, maxY, minX, minY, onDrag, onDragRelease, onLongPress, onPressIn, onPressOut, onRelease, onShortPressRelease, renderColor, renderSize = 36, renderText = '+', scale = 1, shouldReverse = false, touchableOpacityProps, x = 0, y = 0, zIndex = 1 }) => {
22
+ const pan = (0, react_1.useRef)(new react_native_1.Animated.ValueXY());
23
+ const offsetFromStart = (0, react_1.useRef)({
24
+ x: 0,
25
+ y: 0
26
+ });
27
+ const childSize = (0, react_1.useRef)({
28
+ x: renderSize,
29
+ y: renderSize
30
+ });
31
+ const startBounds = (0, react_1.useRef)({
32
+ bottom: 0,
33
+ left: 0,
34
+ right: 0,
35
+ top: 0
36
+ });
37
+ const isDragging = (0, react_1.useRef)(false);
38
+ const getBounds = (0, react_1.useCallback)(() => {
39
+ const left = x + offsetFromStart.current.x;
40
+ const top = y + offsetFromStart.current.y;
41
+ return {
42
+ bottom: top + childSize.current.y,
43
+ left,
44
+ right: left + childSize.current.x,
45
+ top
46
+ };
47
+ }, [
48
+ x,
49
+ y
50
+ ]);
51
+ const shouldStartDrag = (0, react_1.useCallback)((gs) => {
52
+ return !disabled && (Math.abs(gs.dx) > 2 || Math.abs(gs.dy) > 2);
53
+ }, [
54
+ disabled
55
+ ]);
56
+ const reversePosition = (0, react_1.useCallback)(() => {
57
+ react_native_1.Animated.spring(pan.current, {
58
+ toValue: {
59
+ x: 0,
60
+ y: 0
61
+ },
62
+ useNativeDriver: false
63
+ }).start();
64
+ }, [
65
+ pan
66
+ ]);
67
+ const onPanResponderRelease = (0, react_1.useCallback)((event, gestureState) => {
68
+ isDragging.current = false;
69
+ if (onDragRelease) {
70
+ onDragRelease(event, gestureState, getBounds());
71
+ if (onRelease) {
72
+ onRelease(event, true);
73
+ }
74
+ }
75
+ if (shouldReverse) {
76
+ reversePosition();
77
+ }
78
+ else {
79
+ pan.current.flattenOffset();
80
+ }
81
+ }, [
82
+ getBounds,
83
+ onDragRelease,
84
+ onRelease,
85
+ reversePosition,
86
+ shouldReverse
87
+ ]);
88
+ const onPanResponderGrant = (0, react_1.useCallback)((_event, _gestureState) => {
89
+ startBounds.current = getBounds();
90
+ isDragging.current = true;
91
+ if (!shouldReverse) {
92
+ pan.current.setOffset(offsetFromStart.current);
93
+ pan.current.setValue({
94
+ x: 0,
95
+ y: 0
96
+ });
97
+ }
98
+ }, [
99
+ getBounds,
100
+ shouldReverse
101
+ ]);
102
+ const handleOnDrag = (0, react_1.useCallback)((event, gestureState) => {
103
+ const { dx, dy } = gestureState;
104
+ const { bottom, left, right, top } = startBounds.current;
105
+ const far = 999999999;
106
+ const changeX = clamp(dx, Number.isFinite(minX) ?
107
+ minX - left :
108
+ -far, Number.isFinite(maxX) ?
109
+ maxX - right :
110
+ far);
111
+ const changeY = clamp(dy, Number.isFinite(minY) ?
112
+ minY - top :
113
+ -far, Number.isFinite(maxY) ?
114
+ maxY - bottom :
115
+ far);
116
+ pan.current.setValue({
117
+ x: changeX / scale,
118
+ y: changeY / scale
119
+ });
120
+ if (onDrag) {
121
+ onDrag(event, {
122
+ ...gestureState,
123
+ dx: changeX / scale,
124
+ dy: changeY / scale
125
+ });
126
+ }
127
+ }, [
128
+ maxX,
129
+ maxY,
130
+ minX,
131
+ minY,
132
+ onDrag,
133
+ scale
134
+ ]);
135
+ const panResponder = (0, react_1.useMemo)(() => {
136
+ return react_native_1.PanResponder.create({
137
+ onMoveShouldSetPanResponder: (_, gestureState) => {
138
+ return shouldStartDrag(gestureState);
139
+ },
140
+ onMoveShouldSetPanResponderCapture: (_, gestureState) => {
141
+ return shouldStartDrag(gestureState);
142
+ },
143
+ onPanResponderGrant,
144
+ onPanResponderMove: react_native_1.Animated.event([], {
145
+ listener: handleOnDrag,
146
+ useNativeDriver: false
147
+ }),
148
+ onPanResponderRelease
149
+ });
150
+ }, [
151
+ handleOnDrag,
152
+ onPanResponderGrant,
153
+ onPanResponderRelease,
154
+ shouldStartDrag
155
+ ]);
156
+ (0, react_1.useEffect)(() => {
157
+ const currentPan = pan.current;
158
+ if (!shouldReverse) {
159
+ currentPan.addListener((cp) => {
160
+ offsetFromStart.current = cp;
161
+ return offsetFromStart.current;
162
+ });
163
+ }
164
+ return () => {
165
+ currentPan.removeAllListeners();
166
+ };
167
+ }, [
168
+ shouldReverse
169
+ ]);
170
+ const positionCss = (0, react_1.useMemo)(() => {
171
+ const Window = react_native_1.Dimensions.get('window');
172
+ return {
173
+ height: Window.height,
174
+ left: 0,
175
+ position: 'absolute',
176
+ top: 0,
177
+ width: Window.width
178
+ };
179
+ }, []);
180
+ const hasChildren = Boolean(children);
181
+ const dragItemCss = (0, react_1.useMemo)(() => {
182
+ const style = {
183
+ elevation: zIndex,
184
+ left: x,
185
+ top: y,
186
+ zIndex
187
+ };
188
+ if (renderColor) {
189
+ style.backgroundColor = renderColor;
190
+ }
191
+ if (isCircle) {
192
+ style.borderRadius = renderSize;
193
+ }
194
+ if (hasChildren) {
195
+ style.alignSelf = 'baseline';
196
+ return style;
197
+ }
198
+ else {
199
+ style.height = renderSize;
200
+ style.justifyContent = 'center';
201
+ style.width = renderSize;
202
+ return style;
203
+ }
204
+ }, [
205
+ hasChildren,
206
+ isCircle,
207
+ renderColor,
208
+ renderSize,
209
+ x,
210
+ y,
211
+ zIndex
212
+ ]);
213
+ const touchableContent = (0, react_1.useMemo)(() => {
214
+ if (imageSource) {
215
+ const style = {
216
+ height: renderSize,
217
+ width: renderSize
218
+ };
219
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Image, { source: imageSource, style: style }));
220
+ }
221
+ else {
222
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.text, children: renderText }));
223
+ }
224
+ }, [
225
+ imageSource,
226
+ renderSize,
227
+ renderText
228
+ ]);
229
+ const handleOnLayout = (0, react_1.useCallback)((event) => {
230
+ const { height, width } = event.nativeEvent.layout;
231
+ childSize.current = {
232
+ x: width,
233
+ y: height
234
+ };
235
+ }, []);
236
+ const handlePressOut = (0, react_1.useCallback)((event) => {
237
+ if (onPressOut) {
238
+ onPressOut(event);
239
+ }
240
+ if (!isDragging.current &&
241
+ onRelease) {
242
+ onRelease(event, false);
243
+ }
244
+ }, [
245
+ onPressOut,
246
+ onRelease
247
+ ]);
248
+ const getDebugView = (0, react_1.useCallback)(() => {
249
+ const { height, width } = react_native_1.Dimensions.get('window');
250
+ const far = 9999;
251
+ const constrained = minX ?? maxX ?? minY ?? maxY;
252
+ if (!constrained) {
253
+ return null;
254
+ }
255
+ const left = minX ?? -far;
256
+ const right = maxX ?
257
+ width - maxX :
258
+ -far;
259
+ const top = minY ?? -far;
260
+ const bottom = maxY ?
261
+ height - maxY :
262
+ -far;
263
+ const style = {
264
+ bottom,
265
+ left,
266
+ right,
267
+ top,
268
+ ...styles.debugView
269
+ };
270
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: 'box-none', style: style }));
271
+ }, [
272
+ maxX,
273
+ maxY,
274
+ minX,
275
+ minY
276
+ ]);
277
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: 'box-none', style: positionCss, children: [debug && getDebugView(), (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { pointerEvents: 'box-none', ...animatedViewProps, ...panResponder.panHandlers, style: pan.current.getLayout(), children: (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { ...touchableOpacityProps, activeOpacity: 1, disabled: disabled, onLayout: handleOnLayout, onLongPress: onLongPress, onPress: onShortPressRelease, onPressIn: onPressIn, onPressOut: handlePressOut, style: dragItemCss, children: children ?? touchableContent }) })] }));
278
+ };
279
+ Draggable.displayName = 'ReactNativeDraggable';
280
+ exports.default = Draggable;
281
+ //# sourceMappingURL=Draggable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Draggable.js","sourceRoot":"","sources":["../../../../src/components/Node/Draggable.tsx"],"names":[],"mappings":"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"}