@lincle/react-interactive-shared 0.4.0-next.2 → 0.4.0-next.3

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 (104) hide show
  1. package/dist/Contexts/ConnectContext.d.ts +3 -0
  2. package/dist/Contexts/ConnectContext.js +7 -0
  3. package/dist/Contexts/ModeContext.d.ts +7 -0
  4. package/dist/Contexts/ModeContext.js +16 -0
  5. package/dist/Contexts/NodeContext.d.ts +9 -0
  6. package/dist/{utils → Contexts}/NodeContext.js +2 -1
  7. package/dist/Contexts/ScaleContext.d.ts +6 -0
  8. package/dist/Contexts/ScaleContext.js +14 -0
  9. package/dist/Contexts/SnapContext.d.ts +4 -0
  10. package/dist/Contexts/SnapContext.js +12 -0
  11. package/dist/Contexts/TransformContext.d.ts +8 -0
  12. package/dist/Contexts/TransformContext.js +12 -0
  13. package/dist/Contexts/TranslateContext.d.ts +8 -0
  14. package/dist/Contexts/TranslateContext.js +12 -0
  15. package/dist/Contexts/index.d.ts +7 -0
  16. package/dist/Contexts/index.js +23 -0
  17. package/dist/Hooks/index.d.ts +23 -0
  18. package/dist/Hooks/index.js +39 -0
  19. package/dist/Hooks/useConnection.d.ts +2 -0
  20. package/dist/Hooks/useConnection.js +10 -0
  21. package/dist/Hooks/useConnections.d.ts +2 -0
  22. package/dist/Hooks/useConnections.js +10 -0
  23. package/dist/Hooks/useMaxScale.d.ts +2 -0
  24. package/dist/Hooks/useMaxScale.js +10 -0
  25. package/dist/Hooks/useMinScale.d.ts +2 -0
  26. package/dist/Hooks/useMinScale.js +10 -0
  27. package/dist/Hooks/useMode.d.ts +2 -0
  28. package/dist/Hooks/useMode.js +10 -0
  29. package/dist/Hooks/useModeGiven.d.ts +2 -0
  30. package/dist/Hooks/useModeGiven.js +10 -0
  31. package/dist/Hooks/useMove.d.ts +2 -0
  32. package/dist/Hooks/useMove.js +10 -0
  33. package/dist/Hooks/useOnMode.d.ts +2 -0
  34. package/dist/Hooks/useOnMode.js +10 -0
  35. package/dist/Hooks/useOnNodeDrag.d.ts +2 -0
  36. package/dist/Hooks/useOnNodeDrag.js +10 -0
  37. package/dist/Hooks/useOnNodeEdgeDrop.d.ts +2 -0
  38. package/dist/Hooks/useOnNodeEdgeDrop.js +10 -0
  39. package/dist/Hooks/useOnNodeSelect.d.ts +2 -0
  40. package/dist/Hooks/useOnNodeSelect.js +10 -0
  41. package/dist/Hooks/useOnNodeStart.d.ts +2 -0
  42. package/dist/Hooks/useOnNodeStart.js +10 -0
  43. package/dist/Hooks/useOnNodeStop.d.ts +2 -0
  44. package/dist/Hooks/useOnNodeStop.js +10 -0
  45. package/dist/Hooks/useOnScale.d.ts +2 -0
  46. package/dist/Hooks/useOnScale.js +10 -0
  47. package/dist/Hooks/useOnTranslate.d.ts +2 -0
  48. package/dist/Hooks/useOnTranslate.js +10 -0
  49. package/dist/Hooks/useOnTranslateThrottle.d.ts +2 -0
  50. package/dist/Hooks/useOnTranslateThrottle.js +50 -0
  51. package/dist/Hooks/usePan.d.ts +2 -0
  52. package/dist/Hooks/usePan.js +10 -0
  53. package/dist/Hooks/usePull.d.ts +2 -0
  54. package/dist/Hooks/usePull.js +10 -0
  55. package/dist/Hooks/useScale.d.ts +2 -0
  56. package/dist/Hooks/useScale.js +10 -0
  57. package/dist/Hooks/useSetConnection.d.ts +3 -0
  58. package/dist/Hooks/useSetConnection.js +17 -0
  59. package/dist/Hooks/useSnap.d.ts +2 -0
  60. package/dist/Hooks/useSnap.js +10 -0
  61. package/dist/Hooks/useTranslate.d.ts +2 -0
  62. package/dist/Hooks/useTranslate.js +10 -0
  63. package/dist/Hooks/useZoom.d.ts +2 -0
  64. package/dist/Hooks/useZoom.js +10 -0
  65. package/dist/Providers/ConnectProvider.d.ts +4 -0
  66. package/dist/Providers/ConnectProvider.js +44 -0
  67. package/dist/Providers/ModeProvider.d.ts +5 -0
  68. package/dist/Providers/ModeProvider.js +34 -0
  69. package/dist/Providers/NodeProvider.d.ts +5 -0
  70. package/dist/Providers/NodeProvider.js +35 -0
  71. package/dist/Providers/Providers.d.ts +7 -0
  72. package/dist/Providers/Providers.js +23 -0
  73. package/dist/Providers/ScaleProvider.d.ts +5 -0
  74. package/dist/Providers/ScaleProvider.js +34 -0
  75. package/dist/Providers/SnapProvider.d.ts +7 -0
  76. package/dist/Providers/SnapProvider.js +30 -0
  77. package/dist/Providers/TransformProvider.d.ts +5 -0
  78. package/dist/Providers/TransformProvider.js +22 -0
  79. package/dist/Providers/TranslateProvider.d.ts +5 -0
  80. package/dist/Providers/TranslateProvider.js +43 -0
  81. package/dist/Providers/index.d.ts +5 -0
  82. package/dist/Providers/index.js +14 -0
  83. package/dist/defaultSettings.d.ts +32 -0
  84. package/dist/defaultSettings.js +19 -0
  85. package/dist/index.d.ts +3 -1
  86. package/dist/index.js +3 -1
  87. package/dist/shared.d.ts +1 -1
  88. package/dist/shared.js +5 -4
  89. package/dist/types.d.ts +26 -40
  90. package/dist/types.js +6 -5
  91. package/package.json +14 -13
  92. package/dist/utils/ModeContext.d.ts +0 -8
  93. package/dist/utils/ModeContext.js +0 -17
  94. package/dist/utils/NodeContext.d.ts +0 -3
  95. package/dist/utils/ScaleContext.d.ts +0 -6
  96. package/dist/utils/ScaleContext.js +0 -11
  97. package/dist/utils/SnapContext.d.ts +0 -4
  98. package/dist/utils/SnapContext.js +0 -6
  99. package/dist/utils/TransformContext.d.ts +0 -10
  100. package/dist/utils/TransformContext.js +0 -14
  101. package/dist/utils/TranslateContext.d.ts +0 -9
  102. package/dist/utils/TranslateContext.js +0 -14
  103. package/dist/utils/index.d.ts +0 -6
  104. package/dist/utils/index.js +0 -23
@@ -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
+ } });
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
+ export * from './Hooks';
2
+ export * from './Providers';
3
+ export * from './shared';
1
4
  export * from './types';
2
- export * from './utils';
package/dist/index.js CHANGED
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Hooks"), exports);
18
+ __exportStar(require("./Providers"), exports);
19
+ __exportStar(require("./shared"), exports);
17
20
  __exportStar(require("./types"), exports);
18
- __exportStar(require("./utils"), exports);
package/dist/shared.d.ts CHANGED
@@ -1 +1 @@
1
- export { defaultSettings, type EdgeNodeProps, type EdgeProps, type EdgesProps, GraphContext, type GraphContextsProps, type GraphProps, GridContext, type GridProps, type GridType, type Line, type NodeProps, type NodesProps, type PathProps, type Shape } from '@lincle/react-shared';
1
+ export { useDiagramId, useEdgeSubscriber, useGrid, useNodePositions } from '@lincle/react-shared';
package/dist/shared.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GridContext = exports.GraphContext = exports.defaultSettings = void 0;
3
+ exports.useNodePositions = exports.useGrid = exports.useEdgeSubscriber = exports.useDiagramId = void 0;
4
4
  var react_shared_1 = require("@lincle/react-shared");
5
- Object.defineProperty(exports, "defaultSettings", { enumerable: true, get: function () { return react_shared_1.defaultSettings; } });
6
- Object.defineProperty(exports, "GraphContext", { enumerable: true, get: function () { return react_shared_1.GraphContext; } });
7
- Object.defineProperty(exports, "GridContext", { enumerable: true, get: function () { return react_shared_1.GridContext; } });
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; } });
package/dist/types.d.ts CHANGED
@@ -1,65 +1,50 @@
1
- import { type EdgeNodeProps, type EdgeProps, type GridProps as BaseGridProps, type GridType, type NodeProps as BaseNodeProps } from './shared';
2
- import { type ReactElement } from 'react';
1
+ import { type ProvidersProps } from './Providers';
2
+ import { type EdgeNodeProps, type EdgeProps, type GraphProps as BaseGraphProps, type GridProps as BaseGridProps, type GridType, type Line, type NodeProps as BaseNodeProps } from '@lincle/react-shared';
3
+ import { type Dispatch, type ReactElement, type SetStateAction } from 'react';
4
+ export type Connection = {
5
+ line: Line;
6
+ source: EdgeNodeProps;
7
+ target: EdgeNodeProps;
8
+ };
9
+ export type Connections = {
10
+ [key: string]: Connection;
11
+ };
12
+ export type ConnectContextProps = {
13
+ connections?: Connections;
14
+ setConnection?: (sourceId: string, connection?: Connection) => void;
15
+ setConnections?: Dispatch<SetStateAction<Connections>>;
16
+ };
3
17
  export type ModeType = 'move' | 'pull' | 'select';
4
18
  export type Mode = {
5
- disableMove: boolean;
6
- disablePull: boolean;
7
- mode: ModeType;
8
- };
9
- export type ModeContextProps = Partial<Mode> & {
10
- givenMode?: ModeType;
11
- onMode?: (mode: ModeType) => void;
19
+ mode?: ModeType;
20
+ move: boolean;
21
+ pull: boolean;
12
22
  };
13
23
  export type EdgeControlProps = {
14
24
  onEdgeDrop?: (sourceId: number | string, targetId?: number | string) => void;
15
25
  };
16
- export type ScaleContextProps = {
17
- onScale?: (scale: number) => void;
18
- scale: number;
19
- };
20
- export type SnapContextProps = GridType | undefined;
21
- export type TransformProps = {
22
- disablePan?: boolean;
23
- disableScale?: boolean;
24
- maxScale?: number;
25
- minScale?: number;
26
- };
27
- export type TransformContextProps = TransformProps;
28
26
  export type Translate = {
29
27
  x: number;
30
28
  y: number;
31
29
  };
32
- export type TranslateContextProps = {
33
- onTranslate?: (translate: Translate) => void;
34
- translate: Translate;
35
- };
36
- export type ModeProps = Partial<Mode>;
37
- export type ScaleProps = Partial<ScaleContextProps>;
38
- export type SnapProps = {
39
- snap?: SnapContextProps | boolean;
40
- };
41
- export type TranslateProps = Pick<TranslateContextProps, 'onTranslate'> & {
42
- xOffset?: number;
43
- yOffset?: number;
44
- };
45
30
  export type DraggableData = {
46
31
  deltaX: number;
47
32
  deltaY: number;
48
33
  lastX: number;
49
34
  lastY: number;
50
- node: Element;
35
+ node?: Element;
51
36
  x: number;
52
37
  y: number;
53
38
  };
54
- export type NodeProps = BaseNodeProps & ModeProps & Pick<EdgeProps, 'line'> & {
55
- disableMove?: boolean;
56
- disablePull?: boolean;
39
+ export type NodeProps = Omit<BaseNodeProps, 'ref'> & Partial<Mode> & Pick<EdgeProps, 'line'> & {
40
+ move?: boolean;
41
+ pull?: boolean;
57
42
  };
58
43
  export type MoveNodeProps = {
59
44
  readonly disabled: boolean;
60
45
  readonly mode?: ModeType;
61
46
  readonly onSelect?: (nodeId: number | string) => void;
62
- readonly snap?: GridType;
47
+ readonly snap?: GridType | false;
63
48
  };
64
49
  export type PullNodeProps = {
65
50
  readonly disabled?: boolean;
@@ -74,4 +59,5 @@ export type PullProps = {
74
59
  path?: (id: number | string, source: EdgeNodeProps, target: EdgeNodeProps) => ReactElement;
75
60
  };
76
61
  export type GridProps = Pick<BaseGridProps, 'children'>;
77
- export { defaultSettings, type EdgeNodeProps, type EdgeProps, type EdgesProps, GraphContext, GridContext, type GridType, type Line, type NodesProps, type PathProps, type Shape } from './shared';
62
+ export type GraphProps = BaseGraphProps & ProvidersProps;
63
+ export { type EdgeNodeProps, type EdgeProps, type EdgesProps, type GridType, type Line, type NodesProps, type PathProps, type Shape, useDefaultLine, useDefaultNodeHeight, useDefaultNodeWidth, useDefaultShape } from '@lincle/react-shared';
package/dist/types.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GridContext = exports.GraphContext = exports.defaultSettings = void 0;
4
- var shared_1 = require("./shared");
5
- Object.defineProperty(exports, "defaultSettings", { enumerable: true, get: function () { return shared_1.defaultSettings; } });
6
- Object.defineProperty(exports, "GraphContext", { enumerable: true, get: function () { return shared_1.GraphContext; } });
7
- Object.defineProperty(exports, "GridContext", { enumerable: true, get: function () { return shared_1.GridContext; } });
3
+ exports.useDefaultShape = exports.useDefaultNodeWidth = exports.useDefaultNodeHeight = exports.useDefaultLine = void 0;
4
+ var react_shared_1 = require("@lincle/react-shared");
5
+ Object.defineProperty(exports, "useDefaultLine", { enumerable: true, get: function () { return react_shared_1.useDefaultLine; } });
6
+ Object.defineProperty(exports, "useDefaultNodeHeight", { enumerable: true, get: function () { return react_shared_1.useDefaultNodeHeight; } });
7
+ Object.defineProperty(exports, "useDefaultNodeWidth", { enumerable: true, get: function () { return react_shared_1.useDefaultNodeWidth; } });
8
+ Object.defineProperty(exports, "useDefaultShape", { enumerable: true, get: function () { return react_shared_1.useDefaultShape; } });
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@lincle/react-interactive-shared",
3
3
  "title": "lincle react interactive shared",
4
4
  "license": "LGPL-3.0-or-later",
5
- "version": "0.4.0-next.2",
5
+ "version": "0.4.0-next.3",
6
6
  "private": false,
7
7
  "description": "Shared interactive libraries for @lincle",
8
8
  "author": "wallzero @wallzeroblog (http://wallzero.com)",
@@ -43,18 +43,18 @@
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
  "@types/jest": "^29.5.12",
54
54
  "@types/lodash.debounce": "^4.0.9",
55
55
  "@types/lodash.throttle": "^4.1.9",
56
- "@types/node": "^20.12.12",
57
- "@types/react": "^18.3.2",
56
+ "@types/node": "^20.14.11",
57
+ "@types/react": "^18.3.3",
58
58
  "@types/react-test-renderer": "^18.3.0",
59
59
  "cross-env": "^7.0.3",
60
60
  "jest-environment-jsdom": "^29.7.0",
@@ -63,10 +63,11 @@
63
63
  "npm-run-all": "^4.1.5",
64
64
  "react": "^18.3.1",
65
65
  "react-test-renderer": "^18.3.1",
66
- "rimraf": "^5.0.7"
66
+ "rimraf": "^6.0.1"
67
67
  },
68
68
  "dependencies": {
69
- "@lincle/react-shared": "^0.4.0-next.2"
69
+ "@lincle/react-shared": "^0.4.0-next.3",
70
+ "lodash.throttle": "^4.1.1"
70
71
  },
71
72
  "peerDependencies": {
72
73
  "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
@@ -84,5 +85,5 @@
84
85
  "acyclical graph",
85
86
  "cyclical graph"
86
87
  ],
87
- "gitHead": "c00bcd56556ee5599505cbeeebfdab06e4a8c552"
88
+ "gitHead": "0d9cda53a8175e6d2a64d7b3b81828fc98007bfb"
88
89
  }