@lincle/react-interactive-shared 0.0.1 → 0.4.0-next.10

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 (92) hide show
  1. package/LICENSE.md +165 -0
  2. package/dist/Contexts/ConnectContext.d.ts +3 -0
  3. package/dist/Contexts/ConnectContext.js +7 -0
  4. package/dist/Contexts/ModeContext.d.ts +7 -0
  5. package/dist/Contexts/ModeContext.js +16 -0
  6. package/dist/Contexts/NodeContext.d.ts +9 -0
  7. package/dist/Contexts/NodeContext.js +7 -0
  8. package/dist/Contexts/ScaleContext.d.ts +6 -0
  9. package/dist/Contexts/ScaleContext.js +14 -0
  10. package/dist/Contexts/SnapContext.d.ts +4 -0
  11. package/dist/Contexts/SnapContext.js +12 -0
  12. package/dist/Contexts/TransformContext.d.ts +8 -0
  13. package/dist/Contexts/TransformContext.js +12 -0
  14. package/dist/Contexts/TranslateContext.d.ts +8 -0
  15. package/dist/Contexts/TranslateContext.js +12 -0
  16. package/dist/Contexts/index.d.ts +7 -0
  17. package/dist/Contexts/index.js +23 -0
  18. package/dist/Hooks/index.d.ts +23 -0
  19. package/dist/Hooks/index.js +39 -0
  20. package/dist/Hooks/useConnection.d.ts +2 -0
  21. package/dist/Hooks/useConnection.js +10 -0
  22. package/dist/Hooks/useConnections.d.ts +2 -0
  23. package/dist/Hooks/useConnections.js +10 -0
  24. package/dist/Hooks/useMaxScale.d.ts +2 -0
  25. package/dist/Hooks/useMaxScale.js +10 -0
  26. package/dist/Hooks/useMinScale.d.ts +2 -0
  27. package/dist/Hooks/useMinScale.js +10 -0
  28. package/dist/Hooks/useMode.d.ts +2 -0
  29. package/dist/Hooks/useMode.js +10 -0
  30. package/dist/Hooks/useModeGiven.d.ts +2 -0
  31. package/dist/Hooks/useModeGiven.js +10 -0
  32. package/dist/Hooks/useMove.d.ts +2 -0
  33. package/dist/Hooks/useMove.js +10 -0
  34. package/dist/Hooks/useOnMode.d.ts +2 -0
  35. package/dist/Hooks/useOnMode.js +10 -0
  36. package/dist/Hooks/useOnNodeDrag.d.ts +2 -0
  37. package/dist/Hooks/useOnNodeDrag.js +10 -0
  38. package/dist/Hooks/useOnNodeEdgeDrop.d.ts +2 -0
  39. package/dist/Hooks/useOnNodeEdgeDrop.js +10 -0
  40. package/dist/Hooks/useOnNodeSelect.d.ts +2 -0
  41. package/dist/Hooks/useOnNodeSelect.js +10 -0
  42. package/dist/Hooks/useOnNodeStart.d.ts +2 -0
  43. package/dist/Hooks/useOnNodeStart.js +10 -0
  44. package/dist/Hooks/useOnNodeStop.d.ts +2 -0
  45. package/dist/Hooks/useOnNodeStop.js +10 -0
  46. package/dist/Hooks/useOnScale.d.ts +2 -0
  47. package/dist/Hooks/useOnScale.js +10 -0
  48. package/dist/Hooks/useOnTranslate.d.ts +2 -0
  49. package/dist/Hooks/useOnTranslate.js +10 -0
  50. package/dist/Hooks/useOnTranslateThrottle.d.ts +2 -0
  51. package/dist/Hooks/useOnTranslateThrottle.js +50 -0
  52. package/dist/Hooks/usePan.d.ts +2 -0
  53. package/dist/Hooks/usePan.js +10 -0
  54. package/dist/Hooks/usePull.d.ts +2 -0
  55. package/dist/Hooks/usePull.js +10 -0
  56. package/dist/Hooks/useScale.d.ts +2 -0
  57. package/dist/Hooks/useScale.js +10 -0
  58. package/dist/Hooks/useSetConnection.d.ts +3 -0
  59. package/dist/Hooks/useSetConnection.js +17 -0
  60. package/dist/Hooks/useSnap.d.ts +2 -0
  61. package/dist/Hooks/useSnap.js +10 -0
  62. package/dist/Hooks/useTranslate.d.ts +2 -0
  63. package/dist/Hooks/useTranslate.js +10 -0
  64. package/dist/Hooks/useZoom.d.ts +2 -0
  65. package/dist/Hooks/useZoom.js +10 -0
  66. package/dist/Providers/ConnectProvider.d.ts +4 -0
  67. package/dist/Providers/ConnectProvider.js +44 -0
  68. package/dist/Providers/ModeProvider.d.ts +5 -0
  69. package/dist/Providers/ModeProvider.js +34 -0
  70. package/dist/Providers/NodeProvider.d.ts +5 -0
  71. package/dist/Providers/NodeProvider.js +35 -0
  72. package/dist/Providers/Providers.d.ts +7 -0
  73. package/dist/Providers/Providers.js +23 -0
  74. package/dist/Providers/ScaleProvider.d.ts +5 -0
  75. package/dist/Providers/ScaleProvider.js +34 -0
  76. package/dist/Providers/SnapProvider.d.ts +7 -0
  77. package/dist/Providers/SnapProvider.js +30 -0
  78. package/dist/Providers/TransformProvider.d.ts +5 -0
  79. package/dist/Providers/TransformProvider.js +22 -0
  80. package/dist/Providers/TranslateProvider.d.ts +5 -0
  81. package/dist/Providers/TranslateProvider.js +43 -0
  82. package/dist/Providers/index.d.ts +5 -0
  83. package/dist/Providers/index.js +14 -0
  84. package/dist/defaultSettings.d.ts +32 -0
  85. package/dist/defaultSettings.js +19 -0
  86. package/dist/index.d.ts +4 -0
  87. package/dist/index.js +20 -0
  88. package/dist/shared.d.ts +1 -0
  89. package/dist/shared.js +8 -0
  90. package/dist/types.d.ts +70 -0
  91. package/dist/types.js +8 -0
  92. package/package.json +25 -26
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOnTranslate = void 0;
4
+ const Contexts_1 = require("../Contexts");
5
+ const react_1 = require("react");
6
+ const useOnTranslate = () => {
7
+ const { onTranslate } = (0, react_1.useContext)(Contexts_1.TranslateContext);
8
+ return onTranslate;
9
+ };
10
+ exports.useOnTranslate = useOnTranslate;
@@ -0,0 +1,2 @@
1
+ declare const useOnTranslateThrottle: () => import("lodash").DebouncedFuncLeading<(width: number, height: number, x: number, y: number, scale: number) => void>;
2
+ export { useOnTranslateThrottle };
@@ -0,0 +1,50 @@
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.useOnTranslateThrottle = void 0;
7
+ const Contexts_1 = require("../Contexts");
8
+ const react_shared_1 = require("@lincle/react-shared");
9
+ const lodash_throttle_1 = __importDefault(require("lodash.throttle"));
10
+ const react_1 = require("react");
11
+ const scaleCoordinates = (width, height, x, y, scale) => {
12
+ if (scale === 1) {
13
+ return {
14
+ x,
15
+ y
16
+ };
17
+ }
18
+ const centerX = width / 2;
19
+ const centerY = height / 2;
20
+ const relX = x - centerX;
21
+ const relY = y - centerY;
22
+ const scaledX = relX * scale;
23
+ const scaledY = relY * scale;
24
+ return {
25
+ x: Math.round(scaledX + centerX),
26
+ y: Math.round(scaledY + centerY)
27
+ };
28
+ };
29
+ const useOnTranslateThrottle = () => {
30
+ const edgeFrequency = (0, react_shared_1.useEdgeFrequency)();
31
+ const { onTranslate } = (0, react_1.useContext)(Contexts_1.TranslateContext);
32
+ const handleTranslate = (0, react_1.useCallback)((width, height, x, y, scale) => {
33
+ if (onTranslate) {
34
+ const scaledCoordinates = scaleCoordinates(width, height, x, y, scale);
35
+ onTranslate(scaledCoordinates);
36
+ }
37
+ }, [
38
+ onTranslate
39
+ ]);
40
+ const throttledTranslate = (0, react_1.useMemo)(() => {
41
+ return (0, lodash_throttle_1.default)(handleTranslate, edgeFrequency, {
42
+ trailing: true
43
+ });
44
+ }, [
45
+ edgeFrequency,
46
+ handleTranslate
47
+ ]);
48
+ return throttledTranslate;
49
+ };
50
+ exports.useOnTranslateThrottle = useOnTranslateThrottle;
@@ -0,0 +1,2 @@
1
+ declare const usePan: () => boolean;
2
+ export { usePan };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePan = void 0;
4
+ const Contexts_1 = require("../Contexts");
5
+ const react_1 = require("react");
6
+ const usePan = () => {
7
+ const { pan } = (0, react_1.useContext)(Contexts_1.TranslateContext);
8
+ return pan;
9
+ };
10
+ exports.usePan = usePan;
@@ -0,0 +1,2 @@
1
+ declare const usePull: () => boolean;
2
+ export { usePull };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePull = void 0;
4
+ const Contexts_1 = require("../Contexts");
5
+ const react_1 = require("react");
6
+ const usePull = () => {
7
+ const { pull } = (0, react_1.useContext)(Contexts_1.ModeContext);
8
+ return pull;
9
+ };
10
+ exports.usePull = usePull;
@@ -0,0 +1,2 @@
1
+ declare const useScale: () => number;
2
+ export { useScale };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useScale = void 0;
4
+ const Contexts_1 = require("../Contexts");
5
+ const react_1 = require("react");
6
+ const useScale = () => {
7
+ const { scale } = (0, react_1.useContext)(Contexts_1.ScaleContext);
8
+ return scale;
9
+ };
10
+ exports.useScale = useScale;
@@ -0,0 +1,3 @@
1
+ import { type Connection } from '../types';
2
+ declare const useSetConnection: (sourceId: string) => (connection?: Connection) => void;
3
+ export { useSetConnection };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSetConnection = void 0;
4
+ const Contexts_1 = require("../Contexts");
5
+ const react_1 = require("react");
6
+ const useSetConnection = (sourceId) => {
7
+ const { setConnection } = (0, react_1.useContext)(Contexts_1.ConnectContext);
8
+ return (0, react_1.useCallback)((connection) => {
9
+ if (setConnection) {
10
+ setConnection(sourceId, connection);
11
+ }
12
+ }, [
13
+ setConnection,
14
+ sourceId
15
+ ]);
16
+ };
17
+ exports.useSetConnection = useSetConnection;
@@ -0,0 +1,2 @@
1
+ declare const useSnap: () => import("../Contexts").SnapContextProps;
2
+ export { useSnap };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSnap = void 0;
4
+ const Contexts_1 = require("../Contexts");
5
+ const react_1 = require("react");
6
+ const useSnap = () => {
7
+ const snap = (0, react_1.useContext)(Contexts_1.SnapContext);
8
+ return snap;
9
+ };
10
+ exports.useSnap = useSnap;
@@ -0,0 +1,2 @@
1
+ declare const useTranslate: () => import("..").Translate;
2
+ export { useTranslate };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTranslate = void 0;
4
+ const Contexts_1 = require("../Contexts");
5
+ const react_1 = require("react");
6
+ const useTranslate = () => {
7
+ const { translate } = (0, react_1.useContext)(Contexts_1.TranslateContext);
8
+ return translate;
9
+ };
10
+ exports.useTranslate = useTranslate;
@@ -0,0 +1,2 @@
1
+ declare const useZoom: () => boolean;
2
+ export { useZoom };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useZoom = void 0;
4
+ const Contexts_1 = require("../Contexts");
5
+ const react_1 = require("react");
6
+ const useZoom = () => {
7
+ const { zoom } = (0, react_1.useContext)(Contexts_1.TransformContext);
8
+ return zoom;
9
+ };
10
+ exports.useZoom = useZoom;
@@ -0,0 +1,4 @@
1
+ import { type FunctionComponent, type PropsWithChildren } from 'react';
2
+ declare const ConnectProvider: FunctionComponent<ConnectProviderProps>;
3
+ export { ConnectProvider };
4
+ export type ConnectProviderProps = PropsWithChildren<{}>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.ConnectProvider = void 0;
15
+ const jsx_runtime_1 = require("react/jsx-runtime");
16
+ const Contexts_1 = require("../Contexts");
17
+ const react_1 = require("react");
18
+ const ConnectProvider = ({ children }) => {
19
+ const [connections, setConnections] = (0, react_1.useState)({});
20
+ const setConnection = (0, react_1.useCallback)((sourceId, connection) => {
21
+ setConnections((currentConnections) => {
22
+ if (connection) {
23
+ return Object.assign(Object.assign({}, currentConnections), { [sourceId]: connection });
24
+ }
25
+ else {
26
+ const _a = currentConnections, _b = sourceId, omit = _a[_b], rest = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
27
+ return rest;
28
+ }
29
+ });
30
+ }, []);
31
+ const value = (0, react_1.useMemo)(() => {
32
+ return {
33
+ connections,
34
+ setConnection,
35
+ setConnections
36
+ };
37
+ }, [
38
+ connections,
39
+ setConnection
40
+ ]);
41
+ return ((0, jsx_runtime_1.jsx)(Contexts_1.ConnectContext.Provider, { value: value, children: children }));
42
+ };
43
+ exports.ConnectProvider = ConnectProvider;
44
+ ConnectProvider.displayName = 'LincleConnectProvider';
@@ -0,0 +1,5 @@
1
+ import { type ModeContextProps } from '../Contexts';
2
+ import { type FunctionComponent, type PropsWithChildren } from 'react';
3
+ declare const ModeProvider: FunctionComponent<ModeProviderProps>;
4
+ export { ModeProvider };
5
+ export type ModeProviderProps = PropsWithChildren<Omit<ModeContextProps, 'givenMode'>>;
@@ -0,0 +1,34 @@
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.ModeProvider = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const Contexts_1 = require("../Contexts");
9
+ const defaultSettings_1 = __importDefault(require("../defaultSettings"));
10
+ const react_1 = require("react");
11
+ const ModeProvider = ({ children, mode: givenMode, move, pull }) => {
12
+ const [mode, setMode] = (0, react_1.useState)(defaultSettings_1.default.mode.mode);
13
+ const handleMode = (0, react_1.useCallback)((newMode) => {
14
+ setMode(newMode);
15
+ }, []);
16
+ const Mode = (0, react_1.useMemo)(() => {
17
+ return {
18
+ givenMode,
19
+ mode,
20
+ move,
21
+ onMode: handleMode,
22
+ pull
23
+ };
24
+ }, [
25
+ givenMode,
26
+ handleMode,
27
+ mode,
28
+ move,
29
+ pull
30
+ ]);
31
+ return ((0, jsx_runtime_1.jsx)(Contexts_1.ModeContext.Provider, { value: Mode, children: children }));
32
+ };
33
+ exports.ModeProvider = ModeProvider;
34
+ ModeProvider.displayName = 'LincleModeProvider';
@@ -0,0 +1,5 @@
1
+ import { type NodeContextProps } from '../Contexts';
2
+ import { type FunctionComponent, type PropsWithChildren } from 'react';
3
+ declare const NodeProvider: FunctionComponent<NodeProviderProps>;
4
+ export { NodeProvider };
5
+ export type NodeProviderProps = PropsWithChildren<NodeContextProps>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeProvider = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const Contexts_1 = require("../Contexts");
6
+ const react_1 = require("react");
7
+ const NodeProvider = ({ children, onNodeDrag, onNodeEdgeDrop, onNodeSelect, onNodeStart, onNodeStop }) => {
8
+ const [nodeControls, setNodeControls] = (0, react_1.useState)({
9
+ onNodeDrag,
10
+ onNodeEdgeDrop,
11
+ onNodeSelect,
12
+ onNodeStart,
13
+ onNodeStop
14
+ });
15
+ const NodeControls = (0, react_1.useMemo)(() => {
16
+ return {
17
+ onNodeDrag,
18
+ onNodeEdgeDrop,
19
+ onNodeSelect,
20
+ onNodeStart,
21
+ onNodeStop,
22
+ setNodeControls
23
+ };
24
+ }, [
25
+ onNodeDrag,
26
+ onNodeEdgeDrop,
27
+ onNodeSelect,
28
+ onNodeStart,
29
+ onNodeStop,
30
+ setNodeControls
31
+ ]);
32
+ return ((0, jsx_runtime_1.jsx)(Contexts_1.NodeContext.Provider, { value: NodeControls, children: children }));
33
+ };
34
+ exports.NodeProvider = NodeProvider;
35
+ NodeProvider.displayName = 'LincleNodeProvider';
@@ -0,0 +1,7 @@
1
+ export * from './ConnectProvider';
2
+ export * from './ModeProvider';
3
+ export * from './NodeProvider';
4
+ export * from './ScaleProvider';
5
+ export * from './SnapProvider';
6
+ export * from './TransformProvider';
7
+ export * from './TranslateProvider';
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ConnectProvider"), exports);
18
+ __exportStar(require("./ModeProvider"), exports);
19
+ __exportStar(require("./NodeProvider"), exports);
20
+ __exportStar(require("./ScaleProvider"), exports);
21
+ __exportStar(require("./SnapProvider"), exports);
22
+ __exportStar(require("./TransformProvider"), exports);
23
+ __exportStar(require("./TranslateProvider"), exports);
@@ -0,0 +1,5 @@
1
+ import { type ScaleContextProps } from '../Contexts';
2
+ import { type FunctionComponent, type PropsWithChildren } from 'react';
3
+ declare const ScaleProvider: FunctionComponent<ScaleProviderProps>;
4
+ export { ScaleProvider };
5
+ export type ScaleProviderProps = PropsWithChildren<ScaleContextProps>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScaleProvider = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const Contexts_1 = require("../Contexts");
6
+ const react_1 = require("react");
7
+ const ScaleProvider = ({ children, onScale, scale: givenScale }) => {
8
+ const [scale, setScale] = (0, react_1.useState)(givenScale);
9
+ (0, react_1.useEffect)(() => {
10
+ setScale(givenScale);
11
+ }, [
12
+ givenScale
13
+ ]);
14
+ const handleScale = (0, react_1.useCallback)((newScale) => {
15
+ if (onScale) {
16
+ onScale(newScale);
17
+ }
18
+ setScale(newScale);
19
+ }, [
20
+ onScale
21
+ ]);
22
+ const Scale = (0, react_1.useMemo)(() => {
23
+ return {
24
+ onScale: handleScale,
25
+ scale
26
+ };
27
+ }, [
28
+ handleScale,
29
+ scale
30
+ ]);
31
+ return ((0, jsx_runtime_1.jsx)(Contexts_1.ScaleContext.Provider, { value: Scale, children: children }));
32
+ };
33
+ exports.ScaleProvider = ScaleProvider;
34
+ ScaleProvider.displayName = 'LincleScaleProvider';
@@ -0,0 +1,7 @@
1
+ import { type SnapContextProps } from '../Contexts';
2
+ import { type FunctionComponent, type PropsWithChildren } from 'react';
3
+ declare const SnapProvider: FunctionComponent<SnapProviderProps>;
4
+ export { SnapProvider };
5
+ export type SnapProviderProps = PropsWithChildren<{
6
+ readonly snap?: SnapContextProps;
7
+ }>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnapProvider = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const Contexts_1 = require("../Contexts");
6
+ const react_shared_1 = require("@lincle/react-shared");
7
+ const react_1 = require("react");
8
+ const SnapProvider = ({ children, snap }) => {
9
+ var _a;
10
+ const grid = (_a = (0, react_shared_1.useGrid)()) !== null && _a !== void 0 ? _a : false;
11
+ const derivedSnap = (0, react_1.useMemo)(() => {
12
+ switch (snap) {
13
+ case undefined: {
14
+ return grid;
15
+ }
16
+ case false: {
17
+ return false;
18
+ }
19
+ default: {
20
+ return snap;
21
+ }
22
+ }
23
+ }, [
24
+ grid,
25
+ snap
26
+ ]);
27
+ return ((0, jsx_runtime_1.jsx)(Contexts_1.SnapContext.Provider, { value: derivedSnap, children: children }));
28
+ };
29
+ exports.SnapProvider = SnapProvider;
30
+ SnapProvider.displayName = 'LincleSnapProvider';
@@ -0,0 +1,5 @@
1
+ import { type TransformContextProps } from '../Contexts';
2
+ import { type FunctionComponent, type PropsWithChildren } from 'react';
3
+ declare const TransformProvider: FunctionComponent<TransformProviderProps>;
4
+ export { TransformProvider };
5
+ export type TransformProviderProps = PropsWithChildren<TransformContextProps>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransformProvider = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const Contexts_1 = require("../Contexts");
6
+ const react_1 = require("react");
7
+ const TransformProvider = ({ children, maxScale, minScale, zoom }) => {
8
+ const transform = (0, react_1.useMemo)(() => {
9
+ return {
10
+ maxScale,
11
+ minScale,
12
+ zoom
13
+ };
14
+ }, [
15
+ maxScale,
16
+ minScale,
17
+ zoom
18
+ ]);
19
+ return ((0, jsx_runtime_1.jsx)(Contexts_1.TransformContext.Provider, { value: transform, children: children }));
20
+ };
21
+ exports.TransformProvider = TransformProvider;
22
+ TransformProvider.displayName = 'LincleTransformProvider';
@@ -0,0 +1,5 @@
1
+ import { type TranslateContextProps } from '../Contexts';
2
+ import { type FunctionComponent, type PropsWithChildren } from 'react';
3
+ declare const TranslateProvider: FunctionComponent<TranslateProviderProps>;
4
+ export { TranslateProvider };
5
+ export type TranslateProviderProps = PropsWithChildren<TranslateContextProps>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TranslateProvider = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const Contexts_1 = require("../Contexts");
6
+ const react_1 = require("react");
7
+ const TranslateProvider = ({ children, onTranslate, pan, translate: { x, y } }) => {
8
+ const [translate, setTranslate] = (0, react_1.useState)({
9
+ x,
10
+ y
11
+ });
12
+ const handleTranslate = (0, react_1.useCallback)((newTranslate) => {
13
+ if (onTranslate) {
14
+ onTranslate(newTranslate);
15
+ }
16
+ setTranslate(newTranslate);
17
+ }, [
18
+ onTranslate
19
+ ]);
20
+ const Translate = (0, react_1.useMemo)(() => {
21
+ return {
22
+ onTranslate: handleTranslate,
23
+ pan,
24
+ translate
25
+ };
26
+ }, [
27
+ handleTranslate,
28
+ pan,
29
+ translate
30
+ ]);
31
+ (0, react_1.useEffect)(() => {
32
+ setTranslate({
33
+ x,
34
+ y
35
+ });
36
+ }, [
37
+ x,
38
+ y
39
+ ]);
40
+ return ((0, jsx_runtime_1.jsx)(Contexts_1.TranslateContext.Provider, { value: Translate, children: children }));
41
+ };
42
+ exports.TranslateProvider = TranslateProvider;
43
+ TranslateProvider.displayName = 'LincleTranslateProvider';
@@ -0,0 +1,5 @@
1
+ import { type ConnectProviderProps, type ModeProviderProps, type NodeProviderProps, type ScaleProviderProps, type SnapProviderProps, type TransformProviderProps, type TranslateProviderProps } from './Providers';
2
+ import { type FunctionComponent } from 'react';
3
+ declare const Providers: FunctionComponent<ProvidersProps>;
4
+ export { Providers };
5
+ export type ProvidersProps = Partial<ModeProviderProps & NodeProviderProps & ScaleProviderProps & SnapProviderProps & TransformProviderProps & TranslateProviderProps & ConnectProviderProps>;
@@ -0,0 +1,14 @@
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.Providers = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const defaultSettings_1 = __importDefault(require("../defaultSettings"));
9
+ const Providers_1 = require("./Providers");
10
+ const Providers = ({ children, maxScale = defaultSettings_1.default.transform.maxScale, minScale = defaultSettings_1.default.transform.minScale, mode, move = defaultSettings_1.default.mode.move, onNodeDrag, onNodeEdgeDrop, onNodeSelect, onNodeStart, onNodeStop, onScale, onTranslate, pan = defaultSettings_1.default.translate.pan, pull = defaultSettings_1.default.mode.pull, scale = defaultSettings_1.default.scale, snap, translate = defaultSettings_1.default.translate.translate, zoom = defaultSettings_1.default.transform.zoom }) => {
11
+ return ((0, jsx_runtime_1.jsx)(Providers_1.SnapProvider, { snap: snap, children: (0, jsx_runtime_1.jsx)(Providers_1.ConnectProvider, { children: (0, jsx_runtime_1.jsx)(Providers_1.TransformProvider, { maxScale: maxScale, minScale: minScale, onScale: onScale, zoom: zoom, children: (0, jsx_runtime_1.jsx)(Providers_1.NodeProvider, { onNodeDrag: onNodeDrag, onNodeEdgeDrop: onNodeEdgeDrop, onNodeSelect: onNodeSelect, onNodeStart: onNodeStart, onNodeStop: onNodeStop, children: (0, jsx_runtime_1.jsx)(Providers_1.ModeProvider, { mode: mode, move: move, pull: pull, children: (0, jsx_runtime_1.jsx)(Providers_1.ScaleProvider, { onScale: onScale, scale: scale, children: (0, jsx_runtime_1.jsx)(Providers_1.TranslateProvider, { onTranslate: onTranslate, pan: pan, translate: translate, children: children }) }) }) }) }) }) }));
12
+ };
13
+ exports.Providers = Providers;
14
+ Providers.displayName = 'LincleInteractiveProviders';
@@ -0,0 +1,32 @@
1
+ import { type ModeType } from './types';
2
+ declare const _default: {
3
+ mode: {
4
+ mode: ModeType;
5
+ move: boolean;
6
+ pull: boolean;
7
+ };
8
+ scale: number;
9
+ snap: false;
10
+ transform: {
11
+ maxScale: number;
12
+ minScale: number;
13
+ pan: boolean;
14
+ zoom: boolean;
15
+ };
16
+ translate: {
17
+ pan: boolean;
18
+ translate: {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ };
23
+ edgeFrequency: number;
24
+ grid: [number, number];
25
+ height: number;
26
+ line: import("@lincle/react-shared").Line;
27
+ nodeFrequency: number;
28
+ shape: import("@lincle/react-shared").Shape;
29
+ showGrid: boolean;
30
+ width: number;
31
+ };
32
+ export default _default;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_shared_1 = require("@lincle/react-shared");
4
+ exports.default = Object.assign(Object.assign({}, react_shared_1.defaultSettings), { mode: {
5
+ mode: 'move',
6
+ move: true,
7
+ pull: true
8
+ }, scale: 1, snap: false, transform: {
9
+ maxScale: 2,
10
+ minScale: 0.5,
11
+ pan: true,
12
+ zoom: true
13
+ }, translate: {
14
+ pan: true,
15
+ translate: {
16
+ x: 0,
17
+ y: 0
18
+ }
19
+ } });
@@ -0,0 +1,4 @@
1
+ export * from './Hooks';
2
+ export * from './Providers';
3
+ export * from './shared';
4
+ export * from './types';
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Hooks"), exports);
18
+ __exportStar(require("./Providers"), exports);
19
+ __exportStar(require("./shared"), exports);
20
+ __exportStar(require("./types"), exports);
@@ -0,0 +1 @@
1
+ export { useDiagramId, useEdgeSubscriber, useGrid, useNodePositions } from '@lincle/react-shared';
package/dist/shared.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNodePositions = exports.useGrid = exports.useEdgeSubscriber = exports.useDiagramId = void 0;
4
+ var react_shared_1 = require("@lincle/react-shared");
5
+ Object.defineProperty(exports, "useDiagramId", { enumerable: true, get: function () { return react_shared_1.useDiagramId; } });
6
+ Object.defineProperty(exports, "useEdgeSubscriber", { enumerable: true, get: function () { return react_shared_1.useEdgeSubscriber; } });
7
+ Object.defineProperty(exports, "useGrid", { enumerable: true, get: function () { return react_shared_1.useGrid; } });
8
+ Object.defineProperty(exports, "useNodePositions", { enumerable: true, get: function () { return react_shared_1.useNodePositions; } });