@lincle/react-native-interactive 0.4.0-next.2 → 0.4.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/base.d.ts +1 -1
  2. package/dist/base.js +1 -1
  3. package/dist/components/Edge/Path/index.d.ts +1 -0
  4. package/dist/components/Edge/Path/index.js +1 -0
  5. package/dist/components/Edge/index.d.ts +2 -1
  6. package/dist/components/Edge/index.js +2 -1
  7. package/dist/components/Edges/Connections/index.d.ts +4 -0
  8. package/dist/components/Edges/Connections/index.js +39 -0
  9. package/dist/components/Edges/index.d.ts +4 -1
  10. package/dist/components/Edges/index.js +31 -1
  11. package/dist/components/{Grid → Graph/Grid}/index.d.ts +1 -1
  12. package/dist/components/Graph/Grid/index.js +56 -0
  13. package/dist/components/Graph/index.d.ts +1 -1
  14. package/dist/components/Graph/index.js +9 -7
  15. package/dist/components/Node/Draggable.d.ts +41 -0
  16. package/dist/components/Node/Draggable.js +270 -0
  17. package/dist/components/Node/MoveNode/index.js +5 -3
  18. package/dist/components/Node/PullNode/index.js +119 -2
  19. package/dist/components/Node/index.d.ts +3 -1
  20. package/dist/components/Node/index.js +130 -16
  21. package/dist/components/{Interaction → Nodes/Interaction}/index.d.ts +1 -1
  22. package/dist/components/Nodes/Interaction/index.js +105 -0
  23. package/dist/components/Nodes/index.d.ts +4 -1
  24. package/dist/components/Nodes/index.js +20 -1
  25. package/dist/components/index.d.ts +5 -8
  26. package/dist/components/index.js +5 -8
  27. package/dist/shared.d.ts +15 -17
  28. package/dist/shared.js +2 -1
  29. package/package.json +20 -25
  30. package/dist/components/GraphContexts/index.d.ts +0 -4
  31. package/dist/components/GraphContexts/index.js +0 -162
  32. package/dist/components/Grid/index.js +0 -11
  33. package/dist/components/Interaction/index.js +0 -17
  34. package/dist/components/Path/index.d.ts +0 -1
  35. package/dist/components/Path/index.js +0 -1
  36. package/dist/components/Pull/index.d.ts +0 -4
  37. package/dist/components/Pull/index.js +0 -5
@@ -1,19 +1,133 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useDefaultLine, useDefaultNodeHeight, useDefaultNodeWidth, useDefaultShape, useMode, useModeGiven, useMove, useOnNodeDrag, useOnNodeEdgeDrop, useOnNodeSelect, useOnNodeStart, useOnNodeStop, usePull, useSnap } from '../../shared';
13
3
  import MoveNode from './MoveNode';
14
- const Node = (_a) => {
15
- var { children } = _a, props = __rest(_a, ["children"]);
16
- return (_jsx(MoveNode, Object.assign({ disabled: false }, props, { children: children })));
4
+ import PullNode from './PullNode';
5
+ import { useCallback, useMemo, useRef } from 'react';
6
+ const emptySnap = [
7
+ 1,
8
+ 1
9
+ ];
10
+ const Node = ({ children, height: givenHeight, id, line: givenLine, mode: givenMode, move: givenMove, onDrag, onEdgeDrop: givenOnEdgeDrop, onSelect: givenOnSelect, onStart, onStop, pull: givenPull, shape: givenShape, style, width: givenWidth, x, y }) => {
11
+ var _a, _b;
12
+ const defaultHeight = useDefaultNodeHeight();
13
+ const defaultLine = useDefaultLine();
14
+ const defaultShape = useDefaultShape();
15
+ const defaultWidth = useDefaultNodeWidth();
16
+ const snap = useSnap();
17
+ const [snapX, snapY] = snap && Array.isArray(snap) ?
18
+ snap :
19
+ emptySnap;
20
+ const graphMode = useMode();
21
+ const graphGivenMode = useModeGiven();
22
+ const mode = (_a = givenMode !== null && givenMode !== void 0 ? givenMode : graphGivenMode) !== null && _a !== void 0 ? _a : graphMode;
23
+ const graphMove = useMove();
24
+ const graphPull = usePull();
25
+ const onNodeDrag = useOnNodeDrag();
26
+ const onNodeEdgeDrop = useOnNodeEdgeDrop();
27
+ const onNodeSelect = useOnNodeSelect();
28
+ const onNodeStart = useOnNodeStart();
29
+ const onNodeStop = useOnNodeStop();
30
+ const move = givenMove !== null && givenMove !== void 0 ? givenMove : graphMove;
31
+ const pull = givenPull !== null && givenPull !== void 0 ? givenPull : graphPull;
32
+ const onEdgeDrop = givenOnEdgeDrop !== null && givenOnEdgeDrop !== void 0 ? givenOnEdgeDrop : onNodeEdgeDrop;
33
+ const onSelect = givenOnSelect !== null && givenOnSelect !== void 0 ? givenOnSelect : onNodeSelect;
34
+ const pullPosition = useRef({
35
+ x,
36
+ y
37
+ });
38
+ const { height, line, shape, width } = useMemo(() => {
39
+ return {
40
+ height: givenHeight !== null && givenHeight !== void 0 ? givenHeight : defaultHeight,
41
+ line: givenLine !== null && givenLine !== void 0 ? givenLine : defaultLine,
42
+ shape: givenShape !== null && givenShape !== void 0 ? givenShape : defaultShape,
43
+ width: givenWidth !== null && givenWidth !== void 0 ? givenWidth : defaultWidth
44
+ };
45
+ }, [
46
+ defaultHeight,
47
+ defaultLine,
48
+ defaultShape,
49
+ defaultWidth,
50
+ givenHeight,
51
+ givenLine,
52
+ givenShape,
53
+ givenWidth
54
+ ]);
55
+ const handleOnStart = useCallback((event) => {
56
+ if (onStart) {
57
+ onStart(event);
58
+ }
59
+ else if (onNodeStart) {
60
+ onNodeStart(event, id);
61
+ }
62
+ }, [
63
+ id,
64
+ onNodeStart,
65
+ onStart
66
+ ]);
67
+ const handleOnDrag = useCallback((event, data) => {
68
+ if (onDrag) {
69
+ onDrag(event, data);
70
+ }
71
+ else if (onNodeDrag) {
72
+ onNodeDrag(event, id, data);
73
+ }
74
+ }, [
75
+ id,
76
+ onDrag,
77
+ onNodeDrag
78
+ ]);
79
+ const handleOnStop = useCallback((event, data) => {
80
+ if (onStop) {
81
+ onStop(event, data);
82
+ }
83
+ else if (onNodeStop) {
84
+ onNodeStop(event, id, data);
85
+ }
86
+ }, [
87
+ id,
88
+ onNodeStop,
89
+ onStop
90
+ ]);
91
+ const handleMoveStart = useCallback((event) => {
92
+ handleOnStart(event);
93
+ }, [
94
+ handleOnStart
95
+ ]);
96
+ const handleMoveDrag = useCallback((event, data, position) => {
97
+ pullPosition.current = {
98
+ x: position.x,
99
+ y: position.y
100
+ };
101
+ handleOnDrag(event, data);
102
+ }, [
103
+ handleOnDrag
104
+ ]);
105
+ const handleMoveStop = useCallback((event, data) => {
106
+ handleOnStop(event, data);
107
+ }, [
108
+ handleOnStop
109
+ ]);
110
+ const pullNode = useMemo(() => {
111
+ return mode === 'pull' && pull ?
112
+ (_jsx(PullNode, { height: height, line: line, mode: mode, onEdgeDrop: onEdgeDrop, shape: shape, sourceId: id, style: style, width: width, x: pullPosition.current.x, y: pullPosition.current.y })) :
113
+ null;
114
+ }, [
115
+ mode
116
+ ]);
117
+ const snapper = useMemo(() => {
118
+ return {
119
+ x: Math.ceil((x !== null && x !== void 0 ? x : 0) / snapX) * snapX,
120
+ y: Math.ceil((y !== null && y !== void 0 ? y : 0) / snapY) * snapY
121
+ };
122
+ }, [
123
+ snapX,
124
+ snapY,
125
+ x,
126
+ y
127
+ ]);
128
+ return (_jsxs(_Fragment, { children: [_jsx(MoveNode, { disabled: (_b = mode === 'pull') !== null && _b !== void 0 ? _b : !move, height: height, id: id, mode: mode, onDrag: handleMoveDrag, onSelect: onSelect, onStart: handleMoveStart, onStop: handleMoveStop, shape: shape, snap: snap, style: style, width: width, x: snapper.x, y: snapper.y, children: children }), pullNode] }));
17
129
  };
18
130
  Node.displayName = 'LincleInteractiveNode';
19
- export default Node;
131
+ export { Node };
132
+ export { default as MoveNode } from './MoveNode';
133
+ export { default as PullNode } from './PullNode';
@@ -1,4 +1,4 @@
1
- import { type InteractionProps } from '../../shared';
1
+ import { type InteractionProps } from '../../../shared';
2
2
  import { type FunctionComponent } from 'react';
3
3
  declare const Interaction: FunctionComponent<InteractionProps>;
4
4
  export default Interaction;
@@ -0,0 +1,105 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMode, useOnMode, useOnScale, useOnTranslateThrottle, useScale, useTranslate } from '../../../shared';
3
+ import { ReactNativeZoomableView } from '@openspacelabs/react-native-zoomable-view';
4
+ import { useCallback, useEffect, useRef } from 'react';
5
+ import { StyleSheet, View } from 'react-native';
6
+ const CLICK_TIME = 500;
7
+ const useDoubleTap = () => {
8
+ const timer = useRef(null);
9
+ useEffect(() => {
10
+ return () => {
11
+ if (timer.current) {
12
+ clearTimeout(timer.current);
13
+ timer.current = null;
14
+ }
15
+ };
16
+ }, []);
17
+ return useCallback((callback, threshold = CLICK_TIME) => {
18
+ if (timer.current) {
19
+ clearTimeout(timer.current);
20
+ timer.current = null;
21
+ return callback();
22
+ }
23
+ else {
24
+ timer.current = setTimeout(() => {
25
+ timer.current = null;
26
+ }, threshold);
27
+ return;
28
+ }
29
+ }, []);
30
+ };
31
+ const styles = StyleSheet.create({
32
+ container: {
33
+ height: '100%',
34
+ overflow: 'visible'
35
+ },
36
+ zoomable: {
37
+ overflow: 'visible'
38
+ }
39
+ });
40
+ const Interaction = ({ children, onPointerUp }) => {
41
+ const scale = useScale();
42
+ const translate = useTranslate();
43
+ const onScale = useOnScale();
44
+ const onTranslateThrottle = useOnTranslateThrottle();
45
+ const graphMode = useMode();
46
+ const onMode = useOnMode();
47
+ const handleDoubleTap = useDoubleTap();
48
+ const handleOnTransform = useCallback((event) => {
49
+ const { offsetX, offsetY, originalHeight, originalWidth, zoomLevel } = event;
50
+ onTranslateThrottle(originalWidth, originalHeight, offsetX, offsetY, zoomLevel);
51
+ }, [
52
+ onTranslateThrottle
53
+ ]);
54
+ const handleZoom = useCallback((event, gestureState, zoomableViewEventObject) => {
55
+ const { offsetX, offsetY, originalHeight, originalWidth, zoomLevel } = zoomableViewEventObject;
56
+ onTranslateThrottle(originalWidth, originalHeight, offsetX, offsetY, zoomLevel);
57
+ if (onScale) {
58
+ onScale(zoomLevel);
59
+ }
60
+ }, [
61
+ onScale,
62
+ onTranslateThrottle
63
+ ]);
64
+ const handleTapEnd = useCallback(() => {
65
+ if (onMode) {
66
+ switch (graphMode) {
67
+ case 'move': {
68
+ return handleDoubleTap(() => {
69
+ onMode('pull');
70
+ });
71
+ }
72
+ case 'pull': {
73
+ return handleDoubleTap(() => {
74
+ onMode('select');
75
+ });
76
+ }
77
+ case 'select':
78
+ default: {
79
+ return handleDoubleTap(() => {
80
+ onMode('move');
81
+ });
82
+ }
83
+ }
84
+ }
85
+ else {
86
+ return;
87
+ }
88
+ }, [
89
+ graphMode,
90
+ handleDoubleTap,
91
+ onMode
92
+ ]);
93
+ const handlePointerUp = useCallback((event) => {
94
+ handleTapEnd();
95
+ if (onPointerUp) {
96
+ onPointerUp(event);
97
+ }
98
+ }, [
99
+ handleTapEnd,
100
+ onPointerUp
101
+ ]);
102
+ return (_jsx(View, { style: styles.container, children: _jsx(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, children: children }) }));
103
+ };
104
+ Interaction.displayName = 'LincleInteractiveInteraction';
105
+ export default Interaction;
@@ -1 +1,4 @@
1
- export { Nodes as default } from '../../base';
1
+ import { type NodesProps } from '../../shared';
2
+ import { type FunctionComponent } from 'react';
3
+ declare const Nodes: FunctionComponent<NodesProps>;
4
+ export { Nodes };
@@ -1 +1,20 @@
1
- export { Nodes as default } from '../../base';
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { Nodes as BaseNodes } from '../../base';
14
+ import Interaction from './Interaction';
15
+ const Nodes = (_a) => {
16
+ var { children } = _a, props = __rest(_a, ["children"]);
17
+ return (_jsx(Interaction, { children: _jsx(BaseNodes, Object.assign({}, props, { children: children })) }));
18
+ };
19
+ Nodes.displayName = 'LincleInteractiveNodes';
20
+ export { Nodes };
@@ -1,8 +1,5 @@
1
- export { default as Edge } from './Edge';
2
- export { default as Edges } from './Edges';
3
- export { default as Graph } from './Graph';
4
- export { default as GraphContexts } from './GraphContexts';
5
- export { default as Grid } from './Grid';
6
- export { default as Node } from './Node';
7
- export { default as Nodes } from './Nodes';
8
- export { default as Pull } from './Pull';
1
+ export * from './Edge';
2
+ export * from './Edges';
3
+ export * from './Graph';
4
+ export * from './Node';
5
+ export * from './Nodes';
@@ -1,8 +1,5 @@
1
- export { default as Edge } from './Edge';
2
- export { default as Edges } from './Edges';
3
- export { default as Graph } from './Graph';
4
- export { default as GraphContexts } from './GraphContexts';
5
- export { default as Grid } from './Grid';
6
- export { default as Node } from './Node';
7
- export { default as Nodes } from './Nodes';
8
- export { default as Pull } from './Pull';
1
+ export * from './Edge';
2
+ export * from './Edges';
3
+ export * from './Graph';
4
+ export * from './Node';
5
+ export * from './Nodes';
package/dist/shared.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { type DraggableData, type EdgeControlProps, type EdgeProps, type EdgesProps, type Mode, type MoveNodeProps as SharedMoveNodeProps, type NodeProps as SharedNodeProps, type NodesProps, type Position, type PullNodeProps as SharedPullNodeProps, type PullProps as SharedPullProps, type ScaleProps, type SnapProps, type TransformProps, type TranslateProps } from '@lincle/react-interactive-shared';
2
- import { type GraphContextsProps as BaseGraphContextsProps, type GraphProps as BaseGraphProps, type NodeProps as BaseNodeProps } from '@lincle/react-native-base';
3
- import { type ReactElement, type ReactNode } from 'react';
4
- import { type GestureResponderEvent, type ViewStyle } from 'react-native';
5
- 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 EdgeControlProps, 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 EdgeProps as BaseEdgeProps, type EdgesProps as BaseEdgesProps, type NodeProps as BaseNodeProps, type NodesProps as BaseNodesProps } from '@lincle/react-native-base';
3
+ import { type PropsWithChildren } from 'react';
4
+ import { type GestureResponderEvent, type PanResponderGestureState, type ViewStyle } from 'react-native';
6
5
  export type DraggableEvent = GestureResponderEvent;
6
+ export type DraggableData = PanResponderGestureState;
7
7
  export type NodeControlProps = {
8
8
  onDrag?: (event: DraggableEvent, data: DraggableData) => void;
9
- onEdgeDrop?: (sourceId: number | string, targetId?: number | string) => void;
9
+ onEdgeDrop?: (event: DraggableEvent, sourceId: number | string, targetId?: number | string) => void;
10
10
  onSelect?: () => void;
11
11
  onStart?: (event: DraggableEvent) => void;
12
12
  onStop?: (event: DraggableEvent, data: DraggableData) => void;
@@ -17,6 +17,7 @@ export type GraphNodeControlProps = {
17
17
  onNodeStart?: (event: DraggableEvent, nodeId: number | string) => void;
18
18
  onNodeStop?: (event: DraggableEvent, nodeId: number | string, data: DraggableData) => void;
19
19
  };
20
+ export type NodeProps = SharedNodeProps & Omit<BaseNodeProps, 'ref'> & NodeControlProps;
20
21
  export type PullProps = Omit<EdgeProps, 'children' | 'id' | 'path' | 'targetId'> & Omit<NodeProps, 'children' | 'id'> & SharedPullProps & {
21
22
  style?: {
22
23
  pull?: ViewStyle;
@@ -28,20 +29,17 @@ export type PullNodeProps = Omit<NodeProps, 'id'> & SharedPullNodeProps & {
28
29
  pull?: ViewStyle;
29
30
  };
30
31
  };
31
- export type NodeProps = SharedNodeProps & BaseNodeProps & NodeControlProps;
32
32
  export type NodeContextProps = EdgeControlProps & GraphNodeControlProps;
33
- export type GraphContextsProps = BaseGraphContextsProps & EdgeControlProps & GraphNodeControlProps & Partial<Mode> & ScaleProps & SnapProps & TransformProps & TranslateProps;
34
33
  export type InteractionControlProps = {
35
- onMouseDown?: (event: GestureResponderEvent) => void;
36
- onMouseUp?: (event: GestureResponderEvent) => void;
37
- onTouchEnd?: (event: GestureResponderEvent) => void;
38
- onTouchStart?: (event: GestureResponderEvent) => void;
39
- };
40
- export type InteractionProps = InteractionControlProps & Pick<GraphProps, 'children'>;
41
- export type GraphProps = EdgeControlProps & GraphNodeControlProps & InteractionControlProps & Omit<BaseGraphProps, 'children' | 'id'> & Partial<Mode> & ScaleProps & SnapProps & TransformProps & TranslateProps & {
42
- children?: Array<ReactElement<EdgesProps | NodesProps>> | ReactNode | ReactNode[];
43
- id?: number | string;
34
+ onPointerUp?: (event: GestureResponderEvent) => void;
44
35
  };
36
+ export type InteractionProps = PropsWithChildren<InteractionControlProps>;
37
+ export type NodesProps = BaseNodesProps;
38
+ export type EdgeProps = BaseEdgeProps;
39
+ export type EdgesProps = BaseEdgesProps;
45
40
  export type MoveNodeProps = Omit<NodeProps, 'onDrag' | 'onSelect'> & SharedMoveNodeProps & BaseNodeProps & {
46
41
  readonly onDrag?: (event: GestureResponderEvent, data: DraggableData, position: Position) => void;
47
42
  };
43
+ export type GraphProps = Omit<InteractiveGraphProps, 'onNodeDrag' | 'onNodeSelect' | 'onNodeStart' | 'onNodeStop'> & GraphNodeControlProps;
44
+ export { type Connection, type Connections, type ConnectionsProps, type EdgeNodeProps, type GridProps, type ModeType, type Position, Providers, useConnection, useConnections, useDefaultLine, useDefaultNodeHeight, useDefaultNodeWidth, useDefaultShape, useDiagramId, useMode, useModeGiven, useMove, useNodePositions, useOnMode, useOnNodeDrag, useOnNodeEdgeDrop, useOnNodeSelect, useOnNodeStart, useOnNodeStop, useOnScale, useOnTranslateThrottle, usePull, useScale, useSetConnection, useSnap, useTranslate } from '@lincle/react-interactive-shared';
45
+ export { Graph as GraphBase, Marker, useUpdateEdge } from '@lincle/react-native-base';
package/dist/shared.js CHANGED
@@ -1 +1,2 @@
1
- export { defaultScale, defaultSettings, disableMove, disablePull, GraphContext, GridContext, ModeContext, NodeContext, ScaleContext, SnapContext, TransformContext, transformDefaults, TranslateContext, translateDefaults } from '@lincle/react-interactive-shared';
1
+ export { Providers, useConnection, useConnections, useDefaultLine, useDefaultNodeHeight, useDefaultNodeWidth, useDefaultShape, useDiagramId, useMode, useModeGiven, useMove, useNodePositions, useOnMode, useOnNodeDrag, useOnNodeEdgeDrop, useOnNodeSelect, useOnNodeStart, useOnNodeStop, useOnScale, useOnTranslateThrottle, usePull, useScale, useSetConnection, useSnap, useTranslate } from '@lincle/react-interactive-shared';
2
+ export { Graph as GraphBase, Marker, useUpdateEdge } from '@lincle/react-native-base';
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@lincle/react-native-interactive",
3
- "title": "lincle react web interactive",
3
+ "title": "lincle react native interactive",
4
4
  "license": "LGPL-3.0-or-later",
5
- "version": "0.4.0-next.2",
5
+ "version": "0.4.0-next.4",
6
6
  "private": false,
7
7
  "description": "A 'reactive' React node and edge generator",
8
8
  "author": "wallzero @wallzeroblog (http://wallzero.com)",
@@ -43,20 +43,17 @@
43
43
  "clean:dist": "rimraf dist"
44
44
  },
45
45
  "devDependencies": {
46
- "@digest/eslint-config-jest": "^4.3.1",
47
- "@digest/eslint-config-react": "^4.3.1",
48
- "@digest/eslint-config-typescript": "^4.3.1",
49
- "@digest/jest-junit": "^4.3.1",
50
- "@digest/jest-react": "^4.3.1",
51
- "@digest/jest-typescript": "^4.3.1",
52
- "@digest/typescript": "^4.3.1",
46
+ "@digest/eslint-config-jest": "^4.4.3",
47
+ "@digest/eslint-config-react": "^4.4.3",
48
+ "@digest/eslint-config-typescript": "^4.4.3",
49
+ "@digest/jest-junit": "^4.4.3",
50
+ "@digest/jest-react": "^4.4.3",
51
+ "@digest/jest-typescript": "^4.4.3",
52
+ "@digest/typescript": "^4.4.3",
53
53
  "@openspacelabs/react-native-zoomable-view": "^2.1.6",
54
- "@types/bezier-js": "^4.1.3",
55
54
  "@types/jest": "^29.5.12",
56
- "@types/lodash.debounce": "^4.0.9",
57
- "@types/lodash.throttle": "^4.1.9",
58
- "@types/node": "^20.12.12",
59
- "@types/react": "^18.3.2",
55
+ "@types/node": "^22.0.0",
56
+ "@types/react": "^18.3.3",
60
57
  "@types/react-native": "^0.73.0",
61
58
  "@types/react-test-renderer": "^18.3.0",
62
59
  "cross-env": "^7.0.3",
@@ -65,25 +62,23 @@
65
62
  "ncp": "^2.0.0",
66
63
  "npm-run-all": "^4.1.5",
67
64
  "react": "^18.3.1",
68
- "react-native": "^0.74.1",
65
+ "react-native": "^0.74.4",
69
66
  "react-native-draggable": "^3.3.0",
70
- "react-native-reanimated": "^3.11.0",
71
- "react-native-svg": "^15.3.0",
67
+ "react-native-reanimated": "^3.14.0",
68
+ "react-native-svg": "^15.4.0",
72
69
  "react-test-renderer": "^18.3.1",
73
- "rimraf": "^5.0.7"
70
+ "rimraf": "^6.0.1"
74
71
  },
75
72
  "dependencies": {
76
- "@lincle/react-interactive-shared": "^0.4.0-next.2",
77
- "@lincle/react-native-base": "^0.4.0-next.2",
78
- "@lincle/react-shared": "^0.4.0-next.2",
79
- "react-native-draggable": "^3.3.0"
73
+ "@lincle/react-interactive-shared": "^0.4.0-next.4",
74
+ "@lincle/react-native-base": "^0.4.0-next.4",
75
+ "@lincle/react-shared": "^0.4.0-next.4"
80
76
  },
81
77
  "peerDependencies": {
82
78
  "@openspacelabs/react-native-zoomable-view": "^2.1.0",
83
79
  "react": "^16.0.0 || ^17.0.0 || ^18.0.0",
84
80
  "react-native": "^0.72.0",
85
81
  "react-native-draggable": "^3.3.0",
86
- "react-native-pan-pinch-view": "^2.0.0",
87
82
  "react-native-reanimated": "^3.0.0",
88
83
  "react-native-svg": "^13.0.0"
89
84
  },
@@ -94,7 +89,7 @@
94
89
  "react",
95
90
  "reactjs",
96
91
  "react-dom",
97
- "react-web",
92
+ "react-native",
98
93
  "reactive",
99
94
  "react-draggable",
100
95
  "interactive",
@@ -106,5 +101,5 @@
106
101
  "dragndrop",
107
102
  "drag"
108
103
  ],
109
- "gitHead": "c00bcd56556ee5599505cbeeebfdab06e4a8c552"
104
+ "gitHead": "6bbaaf166913673c8990505ea8de66a0587ce372"
110
105
  }
@@ -1,4 +0,0 @@
1
- import { type GraphContextsProps } from '../../shared';
2
- import { type FunctionComponent } from 'react';
3
- declare const GraphContexts: FunctionComponent<GraphContextsProps>;
4
- export default GraphContexts;
@@ -1,162 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { GraphContexts as WrappedGraphContexts } from '../../base';
3
- import { defaultScale, defaultSettings, disableMove as defaultDisableMove, disablePull as defaultDisablePull, GridContext, ModeContext, NodeContext, ScaleContext, SnapContext, TransformContext, transformDefaults, TranslateContext, translateDefaults } from '../../shared';
4
- import Grid from '../Grid';
5
- import { useCallback, useEffect, useMemo, useState } from 'react';
6
- const noGrid = [
7
- 1,
8
- 1
9
- ];
10
- const GraphContexts = ({ children, disableMove = defaultDisableMove, disablePan = transformDefaults.disablePan, disablePull = defaultDisablePull, disableScale = transformDefaults.disableScale, edgeFrequency = defaultSettings.edgeFrequency, grid: givenGrid, id, line = defaultSettings.line, maxScale = transformDefaults.maxScale, minScale = transformDefaults.minScale, mode: givenMode, nodeFrequency = defaultSettings.nodeFrequency, nodeHeight = defaultSettings.height, nodeWidth = defaultSettings.width, onEdgeDrop, onNodeDrag, onNodeSelect, onNodeStart, onNodeStop, onScale, onTranslate, scale: givenScale = defaultScale, shape = defaultSettings.shape, snap, xOffset = translateDefaults.x, yOffset = translateDefaults.y }) => {
11
- const [nodeControls, setNodeControls] = useState({
12
- onEdgeDrop,
13
- onNodeDrag,
14
- onNodeSelect,
15
- onNodeStart,
16
- onNodeStop
17
- });
18
- const NodeControls = useMemo(() => {
19
- return {
20
- onEdgeDrop,
21
- onNodeDrag,
22
- onNodeSelect,
23
- onNodeStart,
24
- onNodeStop,
25
- setNodeControls
26
- };
27
- }, [
28
- onEdgeDrop,
29
- onNodeDrag,
30
- onNodeSelect,
31
- onNodeStart,
32
- onNodeStop,
33
- setNodeControls
34
- ]);
35
- const transform = useMemo(() => {
36
- return {
37
- disablePan,
38
- disableScale,
39
- maxScale,
40
- minScale
41
- };
42
- }, [
43
- disablePan,
44
- disableScale,
45
- maxScale,
46
- minScale
47
- ]);
48
- const [mode, setMode] = useState(givenMode);
49
- const handleMode = useCallback((newMode) => {
50
- setMode(newMode);
51
- }, []);
52
- const Mode = useMemo(() => {
53
- return {
54
- disableMove,
55
- disablePull,
56
- givenMode,
57
- mode,
58
- onMode: handleMode
59
- };
60
- }, [
61
- disableMove,
62
- disablePull,
63
- givenMode,
64
- handleMode,
65
- mode
66
- ]);
67
- useEffect(() => {
68
- handleMode(givenMode);
69
- }, [
70
- givenMode,
71
- handleMode
72
- ]);
73
- const [scale, setScale] = useState(givenScale);
74
- const handleScale = useCallback((newScale) => {
75
- if (onScale) {
76
- onScale(newScale);
77
- }
78
- setScale(newScale);
79
- }, [
80
- onScale
81
- ]);
82
- const Scale = useMemo(() => {
83
- return {
84
- onScale: handleScale,
85
- scale
86
- };
87
- }, [
88
- handleScale,
89
- scale
90
- ]);
91
- useEffect(() => {
92
- setScale(givenScale);
93
- }, [
94
- givenScale
95
- ]);
96
- const [translate, setTranslate] = useState({
97
- x: xOffset,
98
- y: yOffset
99
- });
100
- const handleTranslate = useCallback((newTranslate) => {
101
- if (onTranslate) {
102
- onTranslate(newTranslate);
103
- }
104
- setTranslate(newTranslate);
105
- }, [
106
- onTranslate
107
- ]);
108
- const Translate = useMemo(() => {
109
- return {
110
- onTranslate: handleTranslate,
111
- translate
112
- };
113
- }, [
114
- handleTranslate,
115
- translate
116
- ]);
117
- useEffect(() => {
118
- setTranslate({
119
- x: xOffset,
120
- y: yOffset
121
- });
122
- }, [
123
- xOffset,
124
- yOffset
125
- ]);
126
- const grid = useMemo(() => {
127
- var _a;
128
- return (_a = (givenGrid === false ?
129
- noGrid :
130
- givenGrid)) !== null && _a !== void 0 ? _a : defaultSettings.grid;
131
- }, [
132
- givenGrid
133
- ]);
134
- const derivedSnap = useMemo(() => {
135
- if (snap === undefined) {
136
- return givenGrid === undefined ?
137
- noGrid :
138
- grid;
139
- }
140
- if (snap === false) {
141
- return noGrid;
142
- }
143
- if (snap === true) {
144
- return grid;
145
- }
146
- return snap;
147
- }, [
148
- givenGrid,
149
- grid,
150
- snap
151
- ]);
152
- const hiddenGrid = givenGrid === false ?
153
- null :
154
- (_jsx(Grid, {}));
155
- const staticContexts = (_jsx(NodeContext.Provider, { value: NodeControls, children: _jsx(SnapContext.Provider, { value: derivedSnap, children: _jsx(TransformContext.Provider, { value: transform, children: _jsx(ModeContext.Provider, { value: Mode, children: _jsx(ScaleContext.Provider, { value: Scale, children: _jsxs(TranslateContext.Provider, { value: Translate, children: [hiddenGrid, children] }) }) }) }) }) }));
156
- const gridContext = givenGrid === false ?
157
- staticContexts :
158
- (_jsx(GridContext.Provider, { value: givenGrid !== null && givenGrid !== void 0 ? givenGrid : defaultSettings.grid, children: staticContexts }));
159
- return (_jsx(WrappedGraphContexts, { edgeFrequency: edgeFrequency, grid: false, id: id, line: line, nodeFrequency: nodeFrequency, nodeHeight: nodeHeight, nodeWidth: nodeWidth, shape: shape, children: gridContext }));
160
- };
161
- GraphContexts.displayName = 'LincleInteractiveGraphContexts';
162
- export default GraphContexts;
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Grid as GridBase } from '../../base';
3
- import { ScaleContext, TranslateContext } from '../../shared';
4
- import { useContext } from 'react';
5
- const Grid = ({ children }) => {
6
- const { scale } = useContext(ScaleContext);
7
- const { translate } = useContext(TranslateContext);
8
- return (_jsx(GridBase, { scale: scale, xOffset: translate.x, yOffset: translate.y, children: children }));
9
- };
10
- Grid.displayName = 'LincleInteractiveGrid';
11
- export default Grid;